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

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

Patricia Arquette
发布: 2024-11-29 14:43:13
原创
225 人浏览过

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板