Я пишу код 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])
Но я продолжаю получать следующую ошибку:
ПРЕДУПРЕЖДЕНИЕ preg_match (): сбой компиляции: значение символа в \ x {} или \ o {} слишком велико при смещении 27 по строке 25
Добавьте синтаксический анализ 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]);
Кроме того, я хотел бы подчеркнуть, что у вас есть опечатка. \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]);