欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【关于PHP正则的Unknown Modifier错误】,下面是详细的分享!
关于PHP正则的Unknown Modifier错误
如下正则:
| $a='2<span><nobr>tóng<span class="h">dòng</span></nobr><br>垌</span>3'; echo preg_replace('/<span class="h">[^<]*?</span>/','',$a); |
会提示:
| Warning: preg_replace(): Unknown modifier 'p' in E:\phpLearn\test.php on line 12 |
原因是:
在正则模式中,用/做定界符,但正则中也含有/,因此会出现此错误,PHP误当后面的一个</span>中的斜杠是结束的定界符。
解决办法:
1、加一个转义符:
| echo preg_replace('/<span class="h">[^<]*?<\/span>/','',$a); |
2、改其它定界符:如
| echo preg_replace('{<span class="h">[^<]*?</span>}','',$a); |
以上所分享的是关于关于PHP正则的Unknown Modifier错误,下面是编辑为你推荐的有价值的用户互动:
相关问题:正则表达式匹配
答:我刚开是也没有发现 但是仔细一看 你的正则表达式的分隔符在正则里面出现了 所以要转义 $mode='/(.*) /'; 或者用别的分隔符,分隔符是为了是php的正则和perl中的正则相似,并无别的含义,所以要防止正则表达式里面不要出现和分割符一样的,出现了... >>详细
相关问题:PHP 正则表达式问题(急) preg_match_all() [func...
答:preg_match_all("/]*href=[\"'](?[^\"']*?)[\"'][^>]*>(?[\\w\\W]*?) >>详细
相关问题:关于正则表达式的问题,高手解决~~谢啦
答:正则表达式引擎,和PHP代码编译引擎是分开的。 也就是说 $regexp='/(\/\*)+(.|\n|\r)+(\*\/)/'; 解析后得到的是 /(\/\*)+(.|\n|\r)+(\*\/)/ 这个字符串,这个字符串将存放到 $regexp 变量中。 当你使用正则表达式的时候,这个表达式的字符串,将... >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
