Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 有人能解释一下这个正则表达式吗?_Php_Regex - Fatal编程技术网

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

Php 有人能解释一下这个正则表达式吗?,php,regex,Php,Regex,这是cakePHP用来验证字母数字字符串的正则表达式验证。我无法理解什么是Ll、Lm、Lt等?这是为了验证字母数字字符串,所以它们应该测试数字和字符。有人能解释一下这个表达吗 谢谢。Ll、Lm、Lo、Lt、Lu、Nd是unicode字符类 见本页约1/3处: \p{Ll}或\p{小写字母}:a 带有大写字母的小写字母 变体 \p{Lu}或\p{大写字母}:大写字母 具有小写变体的字母 \p{Lt}或\p{Titlecase_字母}:a 出现在文件开头的字母 单词时只有单词的第一个字母 这个词

这是cakePHP用来验证字母数字字符串的正则表达式验证。我无法理解什么是Ll、Lm、Lt等?这是为了验证字母数字字符串,所以它们应该测试数字和字符。有人能解释一下这个表达吗


谢谢。Ll、Lm、Lo、Lt、Lu、Nd是unicode字符类

见本页约1/3处:

  • \p{Ll}或\p{小写字母}:a 带有大写字母的小写字母 变体
  • \p{Lu}或\p{大写字母}:大写字母 具有小写变体的字母
  • \p{Lt}或\p{Titlecase_字母}:a 出现在文件开头的字母 单词时只有单词的第一个字母 这个词是大写的
  • \p{L&}或\p{Letter&}:存在于 小写和大写变体 (Ll、Lu和Lt的组合)
  • \p{Lm}或\p{修饰字母}:一种特殊的 像字母一样使用的字符
  • \p{Lo}或\p{其他字母}:字母 或没有 小写和大写变体

花括号(Li、Lm、Lt等)之间的代码是Unicode字符类。例如,google for Unicode字符类会快速生成以下列表:

如果经常遇到奇怪的正则表达式,请尝试以下方法:-尽管我不确定它们是否解释了这些占位符(主要是Unicode?)。否则,请查看

上的列表,那不是正则表达式-有人只是靠在键盘上。或者别的什么。(嘘声、嘶嘶声等)我实际上是从cakePHP的开发者API复制并粘贴的。您可以在PHP中尝试验证字符串是否为字母数字。只是开玩笑-它显然是一个正则表达式(似乎在做一些有趣的Unicode字符集事情)。
/^[\p{Ll}\p{Lm}\p{Lo}\p{Lt}\p{Lu}\p{Nd}]+$/mu