文章详情页
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}$'
这个正则可以匹配成功,但是感觉太复杂了,重复的内容过多,能不能进行简化?
问题解答
回答1:我可能这么写^([0-9a-fA-F]{8}_){5}[0-9a-fA-F]{8}$.
既然题主能用{8}了,那可以考虑把前面 八位十六进制数字+’_’ 也用个数字来表达出现次数了。
回答2:可以把[0-9a-fA-F]再简化一下:
^([^W_]{8}_){5}[^W_]{8}$
标签:
java
相关文章:
1. PHP单例模式2. 前端 - 应该先从angularJS , vue.js , react 这些框架中的哪个开始入手?3. angular.js - angular2 基础问题,求解答4. html5 - Vue绑定动态变量不可用5. 微信$data =file_get_contents(’php://input’)取不到数据,抓包6. node.js - nvm怎么更新node的最新版本呀?7. Angular.js 无法设置Authorization头,该怎么解决?8. php laravel框架模型作用域9. CSS代码书写的问题,非常纠结,请教老鸟。10. java 中常量的定义方式。
排行榜