我试图从php中的字符串中获取一些东西。在RegexBuddy和正则表达式测试器(firefox )中,它工作得很好,但是php给了我以下内容:
警告: preg_match() function.preg-match:编译失败:第62行D:\path\example.php中偏移量34处的不匹配括号
我的模式是"/.{4}_tmp\\([A-Za-z0-9.\\]*)\(([0-9]*)\) : (.*)/i"
一个示例字符串:C:\Temp\browseide\projects\32\821C_tmp\SourceFiles\main.c(8) : error C2143: syntax error : missing ';' before 'for'
RegexBuddy得到了什么:
821C_tmp\SourceFiles\main.c(8) : error C2143: syntax error : missing ';' before 'for'
Group 1: SourceFiles\main.c
Group 2: 8
Group 3: error C2143: syntax error : missing ';' before 'for'发布于 2010-05-04 17:47:49
您需要转义PHP字符串中的反斜杠:
"/.{4}_tmp\\\\([A-Za-z0-9.\\\\]*)\\(([0-9]*)\\) : (.*)/i"发布于 2010-05-04 17:49:48
您需要再次转义反斜杠,一旦PHP字符串解析了最终得到的字符串:
/.{4}_tmp\([A-Za-z0-9.\]*)\(([0-9]*)\) : (.*)/i试试echo "/.{4}_tmp\\([A-Za-z0-9.\\]*)\(([0-9]*)\) : (.*)/i";
如果您想在模式中使用\\\\,则应该在双引号中包含\\。
https://stackoverflow.com/questions/2767630
复制相似问题