有人能解释这个正则表达式吗?

mac*_*cha 4 php regex

/^[\p{Ll}\p{Lm}\p{Lo}\p{Lt}\p{Lu}\p{Nd}]+$/mu
Run Code Online (Sandbox Code Playgroud)

这是cakePHP用于验证字母数字字符串的正则表达式验证.我无法理解Ll,Lm,Lt等是什么?这是为了验证字母数字字符串,因此他们应该测试数字和字符.有人可以解释一下这个表达吗?

谢谢.

Mih*_*der 9

Ll,Lm,Lo,Lt,Lu,Nd是unicode字符类.

请参阅此处大约1/3的页面:

http://www.regular-expressions.info/unicode.html

  • \ p {Ll}或\ p {Lowercase_Letter}:具有大写变体的小写字母.
  • \ p {Lu}或\ p {Uppercase_Letter}:具有小写变体的大写字母.
  • \ p {Lt}或\ p {Titlecase_Letter}:当单词的第一个字母大写时,出现在单词开头的字母.
  • \ p {L&}或\ p {Letter&}:以小写和大写变体形式存在的字母(Ll,Lu和Lt的组合).
  • \ p {Lm}或\ p {Modifier_Letter}:一个像字母一样使用的特殊字符.
  • \ p {Lo}或\ p {Other_Letter}:没有小写和大写变体的字母或表意文字.