PHP PREG регулярное выражение:Что означает «\W» при использовании модификатора UTF-8?

StackOverflow https://stackoverflow.com/questions/2023390

  •  19-09-2019
  •  | 
  •  

Вопрос

Я знаю, что это нормально регулярное выражение PHP (режим ASCII) «\w» (слово) означает «букву, цифру и _».Но что это значит, когда вы используете многобайтовое регулярное выражение с модификатор «у»?

preg_replace('/\W/u', '', $string);
Это было полезно?

Решение

Все, что не является буквой, цифрой или подчеркиванием.

Итак, с точки зрения классов символов Юникода, \W эквивалентен каждому символу, который не принадлежит к классам символов L или N и не является символом подчеркивания.

Если бы вы написали это, используя \p{xx} синтаксис, это будет эквивалентно [^\p{LN}_].

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top