当谈到正则表达式时,我并不完全是专业人士,我有一个 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,}等价于+