/^[\p{Ll}\p{Lm}\p{Lo}\p{Lt}\p{Lu}\p{Nd}]+$/mu
Run Code Online (Sandbox Code Playgroud)
这是cakePHP用于验证字母数字字符串的正则表达式验证.我无法理解Ll,Lm,Lt等是什么?这是为了验证字母数字字符串,因此他们应该测试数字和字符.有人可以解释一下这个表达吗?
谢谢.
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}:没有小写和大写变体的字母或表意文字.