具有十六进制部分的复杂正则表达式

时间:2018-09-04 13:13:21

标签: regex

我需要编写一个与字符串匹配的正则表达式:

HELLO[ID]_world.NNN

位置:

  • “ HELLO”是常量。它必须始终以这个词开头
  • “ ID”是任意数字
  • “世界”就是一切
  • 'NNN'是十六进制表示的序列号,即从'000'到'FFF'

例如有效的字符串为:

HELLO[345]_something.123
HELLO[23]_BlaBla.FFF

到目前为止,我有:

\bHELLO\[[0-9]*\]_[a-zA-Z]*\.[0-9]{3}

如果我是正确的(也许不是),则适用于除十六进制部分以外的所有示例。

您能帮我写这个正则表达式吗?

1 个答案:

答案 0 :(得分:1)

要匹配十六进制数字,只需要将a-f和/或A-F添加到[0-9]{3}组中,这取决于您要匹配大写还是小写十六进制数字还是两者都匹配

此外,如注释中所述,您可能希望将*更改为+以禁止这些部分使用空字符串。

HELLO\[[0-9]+\]_[a-zA-Z]+\.[0-9a-fA-F]{3}

Online-Demo