从正则表达式匹配创建数组
在 Java 中,正则表达式匹配通常被验证为布尔值,指示模式是否与字符串匹配。但是,可以将正则表达式中的匹配字符串提取到数组中。
要实现此目的,您可以使用匹配器:
import java.util.regex.Matcher; import java.util.regex.Pattern; ... List<String> allMatches = new ArrayList<>(); Matcher m = Pattern.compile("your regular expression here").matcher(yourStringHere); while (m.find()) { allMatches.add(m.group()); }
上面的代码使用模式来创建一个 Matcher 实例,然后使用该实例迭代地识别匹配项。每个匹配项都会添加到列表中,您可以使用以下方法将列表转换为数组:
allMatches.toArray(new String[0]);
或者,您可以创建一个自定义迭代器以允许对匹配项进行延迟迭代:
public static Iterable<MatchResult> allMatches( final Pattern p, final CharSequence input) { return new Iterable<MatchResult>() { ... }; }
使用此迭代器,您可以迭代匹配项,而无需立即找到所有可能的匹配项。
如代码所示代码片段:
for (MatchResult match : allMatches(Pattern.compile("[abc]"), "abracadabra")) { System.out.println(match.group() + " at " + match.start()); }
这将输出:
a at 0 b at 1 a at 3 c at 4 a at 5 a at 7 b at 8 a at 10
演示如何使用 MatchResult 实现迭代访问匹配。
以上是如何在 Java 中根据正则表达式匹配创建字符串数组?的详细内容。更多信息请关注PHP中文网其他相关文章!