当谈到正则表达式时,我并不完全是专业人士,我有一个 PHP 脚本可以通过这个正则表达式运行:
^[\d\D]{1,}$
这应该做什么,似乎它匹配一切?
\d
匹配任何数字\D
匹配任何非数字。[\d\D]
匹配所有数字和非数字。{1,}
要求比赛[]
至少重复 1 次(没有上限)。所以它匹配其中至少有 1 个字符的所有内容。
简而言之,正则表达式所做的就是:
^.+$
这意味着匹配任何长度为 1 或更大的字符(数字或非数字)。
^[\d\D]{1,}$
将匹配包含一个或多个{1,}
任何数字\d
或非数字\D
字符(包括换行符)的字符串。
相反^.+$
,将匹配包含一个或多个除换行符之外的任何字符的字符串。如果将单行修饰符添加到正则表达式中,即/^.+$/s
也.
将匹配任何字符,包括换行符。
[\d\D]
等效于.
在单行模式下使用,尽管更常见[\s\S]
的是使用相同的结果。
+
相当于{1,}
。
The regex will match the whole of any string that contains at least one character of any kind.
你说的对。事实上,任何至少有一个字符长的东西。但是以一种过于复杂和毫无意义的方式。[\d\D]
等价于.
并且{1,}
等价于+