大家好
我还有另一个RegEx问题。我已经找了好几个小时了,但显然我错过了我需要的一篇关键文章。
我需要在PHP中使用preg_match()来匹配括号之间的字符串,但不让括号显示在结果中。我见过类似问题的例子,但我相信我的问题是不同的,因为它实际上是我正在处理的括号,是RegEx中的元字符。这有什么好处吗?
不管怎样…
字符串:
"200 result=1 (SIP/100-00000033)"
当前代码为:
preg_match("/'((.*)')/s", $res, $matches);
$ matches[0]变成了:
"(SIP/100-00000033)"
我想要的是:
"SIP/100-00000033"
我很抱歉,因为我确信这是非常简单的,但我只是没有抓住它。有人愿意教我吗?
提前感谢!!
这都是指在正则表达式中对项进行分组的方式。你的解是正确的,你只是用了错误的索引来匹配。试一试:
$matches[1]
如果出现错误,我们会把它们贴出来修复
如果您真的希望完全匹配排除括号,您可以使用向前查找和向后查找断言:
preg_match('/(?<='().*(?='))/s', $res, $matches);