我正在尝试编写一个正则表达式来验证字符串中固定位置是否存在特定数字。
String: 109300300330066611111111100000000017000656052086116020170111Name 1
Number to find: 111111111 (Staring from position 17)
我写了下面的正则表达式:
^.{16}(?<Ones>111111111)(.*)
我的理解是:
- 让前 16 个字符随便写
- 使用
Named Capturing Group
来抓取特定的单词 - 让其余的角色随心所欲
我是正则表达式的新手,上述方法有什么问题吗? 可以用其他/更好的方式完成吗?
我正在使用 Java 8。
最佳答案
如果没有更多关于您为什么要做您正在做的事情的详细信息,我只能看到一个可能的改进。您在字符串的开头重复了任何字符 16 次,而不是写出 16 个 .
,这很好且可读,但是,对重复的 执行相同的操作会很好1
:
^.{16}(?<Ones>1{9})(.*)
否则,如果编码人员不手动计算正则表达式中有多少,则很难理解 1
的字符串。
关于java - 正则表达式匹配字符串中的固定子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51869333/