Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 正则表达式编译没有失败,无法重复_Php_Regex - Fatal编程技术网

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,]+@"