我正在尝试编写一个正则表达式来验证字符串中固定位置中特定数字的存在。
String: 109300300330066611111111100000000017000656052086116020170111Name 1
Number to find: 111111111 (Staring from position 17)
我写了以下正则表达式:
^.{16}(?<Ones>111111111)(.*)
我的理解是:
Named Capturing Group
来抓取特定单词我是 regex 的新手,上述方法有什么问题吗?可以用其他/更好的方式完成吗?
我正在使用 Java 8。
如果没有更多关于你为什么做你正在做的事情的细节,我只能看到一种可能的改进。您在字符串的开头重复任何字符 16 次,而不是写出 16 .
s,这很好且可读,但是,对重复的1
s执行相同的操作会很好:
^.{16}(?<Ones>1{9})(.*)
否则,1
如果编码器不手动计算正则表达式中有多少,s字符串就很难理解。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句