首页 >Java >java教程 >如何在 Java 中根据正则表达式匹配创建字符串数组?

如何在 Java 中根据正则表达式匹配创建字符串数组?

Patricia Arquette
Patricia Arquette原创
2024-11-29 14:43:13309浏览

How Can I Create an Array of Strings from Regex Matches in Java?

从正则表达式匹配创建数组

在 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn