我的 preg_match 有什么问题吗?
preg_match('numVar("XYZ-(.*)");',$var,$results);
我想从这里获取所有内容:
numVar("XYZ-内容");
感谢您的帮助!
最佳答案
我认为这是 PHP?如果是这样,您的代码存在三个问题。
- PHP 的 PCRE 函数要求使用分隔符格式化正则表达式。通常的分隔符是
/
,但您可以使用任何您想要的匹配对。 - 您没有在正则表达式中转义括号,因此您没有匹配
(
字符,而是创建了 RE 组。 - 您应该在 RE 中使用非贪婪匹配。否则,像
numVar("XYZ-CONTENT1");numVar("XYZ-CONTENT2");
这样的字符串将匹配两者,并且您的“内容”组将是内容1");numVar("XYZ-内容2
。
试试这个:
$var = 'numVar("XYZ-CONTENT");';
preg_match('/numVar\("XYZ-(.*?)"\);/',$var,$results);
var_dump($results);
关于php - preg_match 不捕获内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8274626/