正则表达式

时间:2010-06-24 11:47:41

标签: regex

我想匹配这个:

  • 八(8)个字母数字字符
  • 后跟 - 连字符
  • 后面跟着二十二(22)个字母数字字符,这是我试过的,不匹配的:

[8]\w+-[22]\w+

4 个答案:

答案 0 :(得分:5)

应该是:

\w{8}-\w{22}

[8]匹配单个字符 - 文字8,[22]匹配一个字面值2。

请注意,\w也允许使用下划线。如果这是一个问题,请使用

[a-zA-Z0-9]{8}-[a-zA-Z0-9]{22}

来自Tim的一个很好的提示,如果你想要从文件或字符串中捕获模式,你可能想要添加\b - 字边界,以避免部分匹配。例如,如果您想要2-4格式12-1234,则第一个parrent将匹配12 34-1234 567

\b\w{8}-\w{22}\b

答案 1 :(得分:1)

您想要使用

\w{8}-\w{22}

在大多数正则表达式语言中,\ w将匹配单词字符。

答案 2 :(得分:1)

也许\w{8}-\w{22}

答案 3 :(得分:1)

正则表达式语法取决于您使用的语言。

[A-ZA-Z0-9] {8} - [A-ZA-Z0-9] {22}

请注意\ w匹配下划线