解析Java通过公共长度和前缀从字符串中提取文本
我有一个文本字符串“9926 9928 9951 9953 0 30 57 12 40 54 30”
我对前缀为99的4位数字感兴趣。其他数字是多余的
期望输出:
9926
9928
9951
9953
我的代码:
String str = " 9926 9928 9951 9953 0 30 57 12 40 54 30";
Iterable<String> result = Splitter.onPattern("99").fixedLength(4).split(str);
实际产量:
992
6 99
28 9
951
9953
0 3
0 57
12
40 5
4 30
# 1 楼答案
将^{} 与regex
99\d{2}
一起使用:另见:^{}
注意,在正则表达式中
\d
是predefined character class等价于[0-9]
。此外,{2}
是一个quantifier,意思是“无论前面发生什么,都会发生两次”。因此,99\d{2}
匹配两个9
后跟两个任意数字:Debuggex Demo
如果您要用许多不同的字符串来执行这个操作,请考虑预先编译正则表达式并将^ {CD3>}实例存储在某些^ {CD10>}变量中,每当您想进行操作时使用它。p>
# 2 楼答案
你可以使用下面的算法来做你的事情
whitespace
字符拆分字符串李>