未知修饰符'l'错误

Web*_*net 0 php regex

Warning: preg_match_all() [function.preg-match-all]: Unknown modifier 'l' in /var/www/test.php on line 9
Run Code Online (Sandbox Code Playgroud)

它说我的正则表达式有一个未知的修饰符,但我不确定触发错误到底发生了什么

preg_match_all("/\<select id\=\'subscription_division_id\'(.+?)</select>\/is", $html, $matches);
Run Code Online (Sandbox Code Playgroud)

pok*_*oke 5

你错了.对于正则表达式解析器,以下是您的正则表达式:

\<select id\=\'subscription_division_id\'(.+?)<
Run Code Online (Sandbox Code Playgroud)

select>\/is应该是regexp修饰符(正则表达式字符串被包含在内/).鉴于l存在第一个无效修饰符,您会收到该错误.所以要解决这个问题,你需要在结束标记中转义斜杠.顺便说一下.你逃避了很多不必要的事情,这就足够了:

preg_match_all("/<select id='subscription_division_id'(.+?)<\/select>/is", $html, $matches);
Run Code Online (Sandbox Code Playgroud)

  • +1使用不同的分隔符(通常是`~`)会更好,所以根本不需要转义. (3认同)