Java正则表达式:获取匹配的序列

发布于 2024-09-07 16:08:48 字数 216 浏览 7 评论 0原文

在 Perl/PHP 正则表达式中,可以匹配序列并获取具有匹配序列的数组:

preg_match('/20[0-1][0-9]/', $inputstring, $array_return); // PHP

我不知道如何在 Java 中执行此操作。 match.group() 返回整个字符串。

这不可能吗?

In Perl/PHP regex is's possible to match a sequence and get an array with matched sequences:

preg_match('/20[0-1][0-9]/', $inputstring, $array_return); // PHP

I can't figure out how to do this in Java. match.group() returns the whole string.

Is this impossible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

羁客 2024-09-14 16:08:48

您可以执行类似于以下操作的操作:

Pattern p = Pattern.compile("\\w"); // Replace "\\w" with your pattern
String str = "Some String To Match";
Matcher m = p.matcher(str);
List<String> matches = new ArrayList<String>();
while(m.find()){
    matches.add(m.group());
}

此后,matches 将包含与模式匹配的每个子字符串。

在本例中,它只是每个字母,不包括空格。

如果您想将 List 转换为 String[] 只需使用:

String[] matchArr = matches.toArray(new String[matches.size()]);

What you can do is something similar to the following:

Pattern p = Pattern.compile("\\w"); // Replace "\\w" with your pattern
String str = "Some String To Match";
Matcher m = p.matcher(str);
List<String> matches = new ArrayList<String>();
while(m.find()){
    matches.add(m.group());
}

After this, matches will contain every substring that matched the Pattern.

In this case, it is just every letter, excluding spaces.

If you want to turn a List<String> into a String[] just use:

String[] matchArr = matches.toArray(new String[matches.size()]);
陪你到最终 2024-09-14 16:08:48

如果您只想返回匹配的一部分,请使用捕获括号。

例如,要仅从 MM/DD/YYYY 日期中获取年份,您想要的正则表达式是

\d{2}/\d{2}/(\d{4})

我不知道在 Java 中执行此操作的具体细节(例如,您可能需要转义某些字符),但只是知道你应该寻找“捕获组”应该很有用。

If you only want to return part of the match, use capturing parentheses.

For example, to get only the year out of an MM/DD/YYYY date, the regex you want is

\d{2}/\d{2}/(\d{4})

I don't know the specifics of doing it in Java (you might need to escape some characters, for example), but just knowing that you should look for "capturing groups" should be of use.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文