Php 正则表达式编译没有失败,无法重复
我正在尝试运行正则表达式编译以找到价格。价格有一些前导文本,一个可能的空格,打开一个跨度,这个跨度可以有许多不重要的不同变量,然后跨度关闭,后面可能有一个美元符号,后面是价格 我的正则表达式是:Php 正则表达式编译没有失败,无法重复,php,regex,Php,Regex,我正在尝试运行正则表达式编译以找到价格。价格有一些前导文本,一个可能的空格,打开一个跨度,这个跨度可以有许多不重要的不同变量,然后跨度关闭,后面可能有一个美元符号,后面是价格 我的正则表达式是: “@最低悬赏金额为\s*]*>\$?[\d,]+@” @是我的分隔符,我有尾随的单词,可能的空格,跨度打开,我说“在你到达标记的末尾之前不要担心任何事情”,标记关闭,我有可能的美元符号,然后我让它匹配数字和逗号,很可能是用逗号格式化的。 我得到的错误是: 编译失败:偏移量41处无需重复 理论上,这个正则
“@最低悬赏金额为\s*]*>\$?[\d,]+@”
@
是我的分隔符,我有尾随的单词,可能的空格,跨度打开,我说“在你到达标记的末尾之前不要担心任何事情”,标记关闭,我有可能的美元符号,然后我让它匹配数字和逗号,很可能是用逗号格式化的。
我得到的错误是:
编译失败:偏移量41处无需重复
理论上,这个正则表达式应该与匹配,最小赏金金额是$50
,在记事本++正则表达式引擎上,它与此匹配。然而PHP似乎不喜欢这样
有什么想法吗?你的问题是使用双引号。PHP将向正则表达式引擎发送$
unscaped
尝试使用单引号:
'@minimum bounty amount is\s*<span[^>]*>\$?[\d,]+@'
第一个转义用于PHP,第二个转义用于正则表达式引擎。非常好。这似乎解决了问题。非常感谢你!
"@minimum bounty amount is\s*<span[^>]*>\\$?[\d,]+@"