php中警告:preg_match_all():編譯失敗:lookbehind斷言
今天在测试正则表达式中相关环视的代码时,发现有个错误
错误信息如下:
Warning: preg_match_all(): Compilation failed: lookbehind assertion is not fixed length at offset
代码如下:
- $str='
info strong';
- preg_match_all('/(?<=<(w )[^>]*>).*(?=1>)/',$str,$match);
- var_dump($match);
复制代码
执行上面的代码就会报错,在网上查看下,说php中逆序环视(包括逆序肯定环视 ?<=exp、逆序否定环视 ?
将上面的代码改为:
- $str='
info strong';
- preg_match_all('/(?<=<(w)>).*(?=1>)/',$str,$match);
- var_dump($match);
复制代码
但这种只能匹配b标签中strong内容
其实,不用环视来匹配,直接用分组来捕获内容,只是这样要在返回的结果中筛选一下
- $str='
info strong';
- preg_match_all('/(<(w )[^>]*>)(.*)(2>)/',$str,$match);
- print_r($match[3]);//Array ( [0] => info [1] => strong )
复制代码
|
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31