首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >preg_match问题

preg_match问题
EN

Stack Overflow用户
提问于 2010-05-04 17:43:44
回答 2查看 4.1K关注 0票数 2

我试图从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得到了什么:

代码语言:javascript
复制
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'
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-05-04 17:47:49

您需要转义PHP字符串中的反斜杠:

代码语言:javascript
复制
"/.{4}_tmp\\\\([A-Za-z0-9.\\\\]*)\\(([0-9]*)\\) : (.*)/i"
票数 2
EN

Stack Overflow用户

发布于 2010-05-04 17:49:48

您需要再次转义反斜杠,一旦PHP字符串解析了最终得到的字符串:

代码语言:javascript
复制
/.{4}_tmp\([A-Za-z0-9.\]*)\(([0-9]*)\) : (.*)/i

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

如果您想在模式中使用\\\\,则应该在双引号中包含\\

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2767630

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档