1

我正在写一个正则表达式,当我在线检查以下正则表达式时,它可以正常工作。但是,它在 php.ini 中返回错误。这是为什么?

preg_match_all('/^[([a-z]+\[[a-z| |,]+\])\,?]+$/', $methods, $result);

返回

Severity: Warning

Message: preg_match_all() [function.preg-match-all]: Compilation failed: unmatched parentheses at offset 23

我也试过这个:

preg_match_all('/^[([a-z]+\\[[a-z| |,]+\\])\\,?]+$/', $methods, $result);
4

1 回答 1

2

如果您[]通过字符组(括号)更改外部字符类(),它将编译,但我不确定您要匹配哪种字符串:

/^(([a-z]+\[[a-z| |,]+\])\,?)+$/

就像在这个例子中

我认为这是因为你不能放置嵌套的 Character 类,因为它们会失去意义,所以你的正则表达式以 3 个部分结束,如下所示:

[([a-z]+

\[[a-z| |,]+

\])\,?]+

以不匹配的输入括号结尾

于 2013-05-21T04:06:45.400 回答