精炼正则表达式后匹配任何东西

时间:2015-01-18 21:39:10

标签: jquery regex

我正在尝试匹配可能出现在普通法令中的数字 如:

101.2.23.1 Door Clearances

我有这个匹配数字和多个点的正则表达式:

^[.?\d]+$

但是,我需要允许之后出现的所有文字。此外,这会返回1. 2. 3. 4.等序数列表的误报。

有没有办法可以匹配开头至少有3个数字的任何东西以及之后的任何文字?

以下是我期望(不)匹配的示例:

101.1              => true
101                => false
1.                 => false
101.1.1 Clearances => true

2 个答案:

答案 0 :(得分:1)

^(\ d +。?)+ \ s(。*)$

第一组是一对或多对(最后一个点可选),第二组匹配其余的

答案 1 :(得分:1)

试试这个:

^\d{3}\..+$

Regular expression visualization

Debuggex Demo(提供所有样本输入的测试)

关键点:

  • ^ - 输入字符串的开头
  • \d{3}\. - 三位数后跟一段时间
  • .+ - "之后的任何文字"
  • $ - 输入字符串的结尾

请注意,在原始模式^[.?\d]+$中,.将与.完全匹配,?将与?字面匹配,因为这些字符会出现在字符类中(以[开头,以]结尾) - 不是您的预期。