if ( preg_match('/['.$i_word.']*( )*['.$p_word.']*/', $string, $match) ){
echo "<br>";
echo "more positive comment";
我收到同样的错误。在这里,我想要匹配两个变量是否匹配我的字符串。但是得到错误:警告:preg_match():编译失败:错过终止]对于偏移量为16的字符类
答案 0 :(得分:0)
$i_word
或$p_word
包含[
或以\
结尾,这会使preg_match()
的第一个参数成为无效的正则表达式。
使用preg_quote()
与$i_word
和$p_word
一起生成正确的正则表达式片段:
$regex = '/['.preg_quote($i_word, '/').']*( )*['.preg_quote($p_word, '/').']*/';
if (preg_match($regex, $string, $match)) {
// success
}