首页  >  问答  >  正文

java或scala中正则表达式的简化问题

现有一个需求,要求检测某个字符串是否是6个八位的十六进制数字以下划线相连,
例如:"1234567F_1234567F_1234567F_1234567F_1234567F_1234567F"
我自己写了一个正则进行匹配,如下:

"^[0-9a-fA-F]{8}_[0-9a-fA-F]{8}_[0-9a-fA-F]{8}_[0-9a-fA-F]{8}_[0-9a-fA-F]{8}_[0-9a-fA-F]{8}$"

这个正则可以匹配成功,但是感觉太复杂了,重复的内容过多,能不能进行简化?

学习ing学习ing2686 天前659

全部回复(2)我来回复

  • 过去多啦不再A梦

    过去多啦不再A梦2017-06-12 09:27:26

    我可能这么写^([0-9a-fA-F]{8}_){5}[0-9a-fA-F]{8}$.

    既然题主能用{8}了,那可以考虑把前面 八位十六进制数字+'_' 也用个数字来表达出现次数了。

    回复
    0
  • 怪我咯

    怪我咯2017-06-12 09:27:26

    可以把[0-9a-fA-F]再简化一下:

    ^([^\W_]{8}_){5}[^\W_]{8}$

    回复
    0
  • 取消回复