簡體   English   中英

preg_match問題

[英]preg_match problem

我正在嘗試從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' 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'

您需要在PHP字符串中轉義反斜杠:

"/.{4}_tmp\\\\([A-Za-z0-9.\\\\]*)\\(([0-9]*)\\) : (.*)/i"

一旦PHP字符串解析了該字符串,您最終需要再次轉義反斜杠:

/.{4}_tmp\([A-Za-z0-9.\]*)\(([0-9]*)\) : (.*)/i

嘗試echo "/.{4}_tmp\\\\([A-Za-z0-9.\\\\]*)\\(([0-9]*)\\) : (.*)/i";

如果要在模式中使用\\\\ ,則應在雙引號中包含\\\\\\\\

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM