Php 预匹配问题
我试图从php中的字符串中获取一些内容。在RegexBuddy和RegularExpressionTester(firefox插件)中,它运行良好,但php提供了以下信息: 警告:preg_match() [function.preg match]:编译 失败:位于的括号不匹配 偏移量34英寸 D:\path\example.php 第62行 我的模式是Php 预匹配问题,php,regex,preg-match,Php,Regex,Preg Match,我试图从php中的字符串中获取一些内容。在RegexBuddy和RegularExpressionTester(firefox插件)中,它运行良好,但php提供了以下信息: 警告:preg_match() [function.preg match]:编译 失败:位于的括号不匹配 偏移量34英寸 D:\path\example.php 第62行 我的模式是“/。{4}\u tmp\\([A-Za-z0-9.\\]*)\([0-9]*)\:(.*)/i” 示例字符串:C:\Temp\browseid
“/。{4}\u tmp\\([A-Za-z0-9.\\]*)\([0-9]*)\:(.*)/i”
示例字符串:C:\Temp\browseide\projects\32\821C\u tmp\SourceFiles\main.C(8):错误C2143:语法错误:缺少“;”在“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'
您需要转义PHP字符串中的反斜杠:
"/.{4}_tmp\\\\([A-Za-z0-9.\\\\]*)\\(([0-9]*)\\) : (.*)/i"
当PHP字符串解析该字符串后,您需要再次转义反斜杠:
/.{4}_tmp\([A-Za-z0-9.\]*)\(([0-9]*)\) : (.*)/i
尝试echo/。{4}\u tmp\\([A-Za-z0-9.\\]*)\([0-9]*):(.*)/i”代码>
如果您想在模式中使用\\\\
,则应该在双引号中包含\\\
,没有必要在结尾处将“\\\”加倍-PHP没有特殊的\(
或\)
,因此不需要对其进行转义。。。也不痛,只是觉得值得一提。