preg_replace()[function.preg-replace]:编译失败:偏移量为8的不匹配括号

时间:2017-04-11 07:34:54

标签: php regex

为什么我们遇到上述错误。当我们在运行超过500的for循环内运行代码时。

$text22 = preg_replace('/\S*\b('. $searchphrase[$rr] .')\b\S*/i', '<b><a href='.$bbb.' data-color='.$colors1[$clx].','.$colors2[$clx].','.$colors3[$clx].'>$1</a></b>', $aaa);

1 个答案:

答案 0 :(得分:1)

您放入正则表达式的动态字符串可能包含正则表达式特有的字符。字符串中的左括号将导致“不匹配的括号”错误,而“在偏移8处”是问题所在的第二个提示。您应该在preg_quote中包含正则表达式变量:

'/\S*\b('. preg_quote($searchphrase[$rr]) .')\b\S*/i'