PHP PREG正则表达式:使用UTF-8修饰符时"\ W"是什么意思?

Xeo*_*oss 3 php regex pcre utf-8

我知道在正常的php正则表达式(ASCII模式)中,"\ w"(单词)表示"字母,数字和_".但是当你使用带有"u"修饰符的多字节正则表达式时,它意味着什么?

preg_replace('/\W/u', '', $string);
Run Code Online (Sandbox Code Playgroud)

Wel*_*bog 6

任何不是字母,数字或下划线的东西.

因此,就Unicode字符类而言,\W相当于不在L或N字符类中且不是下划线字符的每个字符.

如果您使用\p{xx}语法编写它,它将等同于[^\p{LN}_].