您的位置:首页技术文章
文章详情页

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

【字号: 日期:2023-11-07 10:25:32浏览:11作者:猪猪

问题描述

现有一个需求,要求检测某个字符串是否是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}$'

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

问题解答

回答1:

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

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

回答2:

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

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

标签: java
相关文章: