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

5
/^[\p{Ll}\p{Lm}\p{Lo}\p{Lt}\p{Lu}\p{Nd}]+$/mu

这是cakePHP用于验证字母数字字符串的正则表达式。我不明白Ll、Lm、Lt等是什么意思?这是用于验证字母数字字符串的,所以应该测试数字和字符。能有人解释一下这个表达式吗?
谢谢。

1
那不是正则表达式 - 有人只是在键盘上倚靠了一下。或者其他什么原因。(嘘声,嘘声等等) - John Parker
我实际上是从cakePHP的开发者API中复制并粘贴的。您可以尝试在PHP中验证字符串是否为字母数字。 - macha
只是开玩笑 - 显然这是一个正则表达式(似乎在做一些有趣的Unicode字符集事情)。 - John Parker
3个回答

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}:没有小写和大写变体的字母或表意文字。

1

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接