2 回答
TA贡献1841条经验 获得超3个赞
为了完整性以及早期版本的 Java,您可以只使用Matcher和while循环来提取与模式匹配的字符串。
public static void main( String[] args ) {
String test = "Number %1. And number %2 also.";
Matcher matcher = Pattern.compile( "%[\\d]+" ).matcher( test );
ArrayList<String> results = new ArrayList<>();
while( matcher.find() )
results.add( matcher.group() );
System.out.println( results );
}
TA贡献1873条经验 获得超9个赞
根据您想要做什么,您不必为(%[0-9]+).
例如,如果您计划提取与反转正则表达式匹配的所有子字符串,则可以使用yourString.split("%[0-9]+").
如果您打算%...通过拆分字符串来提取所有内容,则yourString.split(invertedRegex)可以改用匹配器。
取自这个答案的代码。
String[] matches = Pattern.compile("%[0-9]+").matcher(yourString)
.results().map(MatchResult::group)
.toArray(String[]::new);
添加回答
举报