PHP preg_match转义字符


PHP preg_match escaping character

所以我在正则表达式方面遇到了以下问题:

我想要实现的目标:获取命名空间的最后一个元素,在本例中为"BAZ"

为此,我使用以下正则表达式:

preg_match("/[^'']*$/", 'Foo'Bar'Baz', $output);

由于某种原因,我收到此错误:

preg_match(): 编译失败:偏移量 6 处缺少字符类的终止 ]

您需要双重转义''因为在 PHP 中正则表达式以字符串形式输入,其中需要每个文字'作为'',正则表达式引擎需要对每个'进行额外的转义,因此您最终会得到 4 '

preg_match('/[^'''']*$/', 'Foo'Bar'Baz', $output);