preg_match():编译失败:\ x {}或\ o {}中的字符值在第25行的偏移量27处太大

Tim*_*thy 11 php regex preg-match

我正在写一些PHP代码.在这段代码中,我在for循环中运行for循环来迭代数组,然后迭代数组中当前字符串中的字符.

然后我想对当前字符串执行preg_match()以查看它是否与一个相当灵活的RegEx匹配.

preg_match('/[ \f\n\r\t\v\x{00a0}\x{1680}\x{180e}\x{2000-}\x{200a}\x{2028}\x{2029}\x{202f}\x{205f}\x{3000}\x{feff}]/', $input[$i][$j])
Run Code Online (Sandbox Code Playgroud)

但我继续收到以下错误:

警告preg_match():编译失败:\ x {}或\ o {}中的字符值在第25行的偏移27处太大

Rob*_*ads 23

添加UTF-8解析,您不处于UFT8模式.添加u参数.

preg_match('/[ \f\n\r\t\v\x{00a0}\x{1680}\x{180e}\x{2000-}\x{200a}\x{2028}\x{2029}\x{202f}\x{205f}\x{3000}\x{feff}]/u', $input[$i][$j]);
Run Code Online (Sandbox Code Playgroud)

此外,我还要强调你有一个错字.\x{2000-}应该\x{2000}还是\x{2000}-:

preg_match('/[ \f\n\r\t\v\x{00a0}\x{1680}\x{180e}\x{2000}\x{200a}\x{2028}\x{2029}\x{202f}\x{205f}\x{3000}\x{feff}]/u', $input[$i][$j]);
Run Code Online (Sandbox Code Playgroud)

  • @Timothy,拼写错误不是您的错误问题,您是否像我首先告诉的那样在最后一个“/”后面添加了“u”? (2认同)