0

我有一个正则表达式,我怀疑它最初是为 .NET Regex 引擎编写的,我正试图在 PHP 中使用它。它包含以下似乎不受 PCRE 支持的字符大小写(不返回匹配项,但没有错误):

[a-z-[cfx]]

preg_match('/[a-z-[cfx]]/', 'a'); => int(0)
preg_match('/[a-z-[cfx]]/', 'b'); => int(0)
preg_match('/[a-z-[cfx]]/', 'c'); => int(0)
preg_match('/[a-z-[cfx]]/', 'f'); => int(0)
preg_match('/[a-z-[cfx]]/', 'x'); => int(0)

我已经检查了一个跨平台指南,但无法找出这个子案例的实际作用——它a-z没有c fandx吗?如果是这样,在 PCRE 中写这个的最好方法是什么?

4

1 回答 1

2

它确实从外部字符类中排除了字符。你可以在这里阅读。

要在 PCRE 中实现相同的功能,您可以使用类似/[abdeg-wyz]/.

于 2013-06-03T10:32:18.887 回答