PHP:这个从ereg转换的preg_match有什么问题

时间:2013-10-22 18:15:09

标签: php regex preg-match ereg

我在这里看到过类似的问题,但我认为他们中的任何一个都没有帮助。

我从使用旧版PHP的用户继承了一个网站,特别是ereg功能。他们原来的reg ex是:

$regex = "[ ]+[0-9]+) ( [a-zA-Z]+)[ ]+Crimson[ ]+([0-9]+)[ ]+[0-9]+[ ]+[0-9]+[ ]+[0-9]+[ ]+([0-9]+)[ ]+[0-9]+";

我已经读过你需要以分隔符开头和结尾,所以我把它更新为:

$regex = "/[ ]+[0-9]+) (    [a-zA-Z]+)[ ]+Crimson[ ]+([0-9]+)[ ]+[0-9]+[ ]+[0-9]+[ ]+[0-9]+[ ]+([0-9]+)[ ]+[0-9]+/";

但我仍然收到此错误:

  

警告:preg_match():编译失败:无法匹配的括号   抵消10

我没有在表达式中看到任何特殊字符,所以我不确定我还需要逃避什么。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

你的正则表达式开头附近有),但你没有打开它。如果它是文字的,请在它之前添加反斜杠。

/[ ]+[0-9]+)

/[ ]+[0-9]+\)

如果没有,请先打开它。

答案 1 :(得分:1)

在第10位你有一个关闭),没有开口(