正则表达式

Gan*_*row 2 regex

我想要匹配这个:

  • 八(8)个字母数字字符
  • 接着 - 连字符
  • 接下来是二十二(22)个字母数字字符,这是我尝试过的,它不匹配:

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

Kob*_*obi 5

应该:

\w{8}-\w{22}
Run Code Online (Sandbox Code Playgroud)

[8]匹配单个字符 - 文字8,并[22]匹配一个文字2.

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

[a-zA-Z0-9]{8}-[a-zA-Z0-9]{22}
Run Code Online (Sandbox Code Playgroud)

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

\b\w{8}-\w{22}\b
Run Code Online (Sandbox Code Playgroud)

  • +1,我还建议用'\ b`标签包围所有东西,以确保. (4认同)