java使用正则表达式查找文本中的字符串列表
我陷入了这种境地
public void findListOfPattern(){
String text = "abce1213abcd231asdf";
String find = "1213|231|1232";
Pattern part = Pattern.compile(find);
Matcher mat = part.matcher(text);
System.out.println(mat.find()); //True
}
如果findget匹配中的任何字符串,则能够获得真正的结果。 我想要文本中的匹配器列表。 这里的文本可以更大,查找字符串也可以更多。 在find中:12132311232是分开的
结果应该是:-1213231
# 1 楼答案
您需要调用
mat.group()
来返回所需的匹配通常,您会循环直到
mat.find()
返回true
,然后通过调用mat.group()
连续打印所有匹配项然后,您可以通过连接
mat.group()
的结果来构建预期的结果String
,如使用StringBuilder
注释
Matcher#find
,以便Matcher#group
产生任何结果,而不是抛出IllegalStateException
Pattern
只有默认组。如果使用了括号或命名组(来自Java 7),还可以调用重载Matcher#group(int group)或Matcher#group(String name)李>