我收到以下错误消息:
警告:preg_match_all():未知的修饰符' g'
我使用的模式是:
$pattern = '/<Cube\s*currency="(\w*)"\s*rate="([\d\.]*)"\/>/gi';
preg_match_all($pattern,$buffer,$xml_rates);
我确实将/
更改为{}
,#
和~
,但没有任何区别。
我使用https://regex101.com/来测试正则表达式,并且它在那里工作,但是当我添加它时,它会给出错误。
我在这里搜索了,但第一个问题没有delimiters,但是我做了,而其他问题的用户使用的是preg_match()
而不是preg_match_all()
,但我我正在使用preg_match_all()
。
我哪里错了?
答案 0 :(得分:3)
preg_match_all
已经global
,因此g
修饰符无效
preg_match_all
= preg_match
+ g
。
答案 1 :(得分:0)
g
正则表达式修饰符将使所有匹配全局。
PHP使用preg_match_all()
进行全局匹配,无需使用g
修饰符。