2

当谈到正则表达式时,我并不完全是专业人士,我有一个 PHP 脚本可以通过这个正则表达式运行:

^[\d\D]{1,}$

这应该做什么,似乎它匹配一切?

4

4 回答 4

2
  • \d匹配任何数字
  • \D匹配任何非数字。
  • [\d\D]匹配所有数字和非数字。
  • {1,}要求比赛[]至少重复 1 次(没有上限)。

所以它匹配其中至少有 1 个字符的所有内容。

参考:http ://www.regular-expressions.info/reference.html

于 2013-03-29T12:09:10.387 回答
1

简而言之,正则表达式所做的就是:

^.+$

这意味着匹配任何长度为 1 或更大的字符(数字或非数字)。

于 2013-03-29T12:10:19.847 回答
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.

于 2013-03-29T12:37:26.687 回答
0

你说的对。事实上,任何至少有一个字符长的东西。但是以一种过于复杂和毫无意义的方式。[\d\D]等价于.并且{1,}等价于+

于 2013-03-29T12:13:05.617 回答