【问题标题】:RegEx match exactly 4 digitsRegEx 完全匹配 4 位数字
【发布时间】:2017-03-08 14:59:51
【问题描述】:

好的,我有一个像这样的正则表达式模式/^([SW])\w+([0-9]{4})$/

此模式应匹配带有SW-前缀和4位数字的SW0001之类的字符串。

我认为 [0-9]{4} 可以完成这项工作,但它也匹配 5 位数字的字符串等等。

关于如何让它工作以仅匹配带有 SW 和 4 位数字的字符串的任何建议?

【问题讨论】:

  • 添加 $ 锚点。 /^SW\d{4}$/。这是因为\w+ 其中\w+ 匹配一个或多个字母数字字符。
  • \w+ 也匹配数字。你的意思是使用/^([SW])[a-zA-Z]*([0-9]{4})$/
  • 请不要为问题添加解决方案。
  • regexpal.com 是你的朋友。

标签: javascript regex


【解决方案1】:

让我们看看正则表达式 /^([SW])\w+([0-9]{4})$/ 匹配什么

  1. 因为使用了字符类,所以以 S 或 W 开头
  2. 一个或多个字母数字字符或下划线(\w = [a-zA-Z0-9_])
  3. 四位数

这场比赛不仅仅是SW0001

使用下面的正则表达式。

/^SW\d{4}$/

此正则表达式将匹配以 SW 开头的字符串,后跟正好四位数字。

【讨论】:

    【解决方案2】:

    在正则表达式中,

    • ^ 表示要匹配字符串的开头
    • $ 表示要匹配字符串的结尾

    所以如果你想匹配“SW”+你需要的正好 4 位数字

    ^SW[0-9]{4}$ 
    

    【讨论】:

      【解决方案3】:

      如果你想进入正则表达式并匹配 4 个数字...你也可以反斜杠。

      get-childitem | where name -match 'journal.\d{4}.txt'
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-06-15
        • 1970-01-01
        • 1970-01-01
        • 2017-10-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多