警告:preg_match_all():未知修饰符';J';使用php
我在php中使用正则表达式,它工作得很好。但是,得到一些警告,比如警告:preg_match_all():未知修饰符';J';使用php,php,regex,Php,Regex,我在php中使用正则表达式,它工作得很好。但是,得到一些警告,比如 Warning: preg_match_all(): Unknown modifier 'J' 我的代码是 $pattern = '/\b'.trim($keyword[$i]).'(s)??\b/i'; if(preg_match_all($pattern, substr($content,10), $matches)){ print_r
Warning: preg_match_all(): Unknown modifier 'J'
我的代码是
$pattern = '/\b'.trim($keyword[$i]).'(s)??\b/i';
if(preg_match_all($pattern, substr($content,10), $matches)){
print_r($matches[0]);
}
print\r($keywords[$i])
的结果是
Array
(
[0] => best
[1] => menu
[2] => resturant
[3] => resturants
[4] => Food
[5] => Dinner
[6] => Lunch
)
供你参考
请帮帮我。提前谢谢 在正则表达式中插入这样的单词时,最好使用:
$pattern = '/\b'.preg_quote(trim($keyword[$i]), '/').'(s)??\b/i';
在$keyword[$i]中给出一个print_r(),我编辑了这个问题。请立即检查
print\r($keywords[$i])
与您提供的输出不符,除非$keywords
是二维数组。为了看到更大的图景,请您将$keywords
复制到类似$keywords=array(“aaa”、“bbb”、“ccc”)代码>并告诉我们您最终要实现的目标。根据用例的不同,preg\u grep()
可以帮助您。在为preg\u quote
使用模式+1后,仍然会收到相同的警告。。。但是-1表示双重逃避一切。在单引号字符串中工作的唯一转义序列是\\和\'。其他任何东西都不受影响;特别是,您不需要对所有内容都使用双反斜杠——这就是使用单引号字符串表示REs@Gireesh的部分意义。我对我的答案做了一个小编辑,请检查。我支持+1/-1。两个反斜杠,他们什么也没做!酷,删除-1,现在只保留+1。;)