PHP PREG регулярное выражение:Что означает «\W» при использовании модификатора UTF-8?
Вопрос
Я знаю, что это нормально регулярное выражение PHP (режим ASCII) «\w» (слово) означает «букву, цифру и _».Но что это значит, когда вы используете многобайтовое регулярное выражение с модификатор «у»?
preg_replace('/\W/u', '', $string);
Решение
Все, что не является буквой, цифрой или подчеркиванием.
Итак, с точки зрения классов символов Юникода, \W
эквивалентен каждому символу, который не принадлежит к классам символов L или N и не является символом подчеркивания.
Если бы вы написали это, используя \p{xx}
синтаксис, это будет эквивалентно [^\p{LN}_]
.
Не связан с StackOverflow