gpt4 book ai didi

java - 正则表达式 - 捕获所有重复组

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:09:01 25 4
gpt4 key购买 nike

我有如下字符串:

@property.one@some text here@property.two@another optional text here etc

其中包含 @.+?@ 字符串。

我想通过一个正则表达式匹配将所有这些“变量”捕获到组中,但似乎不可能,因为正则表达式在重复时仅返回最后捕获的组。

最佳答案

你是对的;大多数正则表达式风格,包括 Java,都不允许访问重复捕获组的单个匹配项。 (为了记录,Perl 6 和 .NET 确实允许这样做,但这对您没有帮助)。

你还能做什么?

Pattern regex = Pattern.compile("@[^@]+@");
Matcher regexMatcher = regex.matcher(subjectString);
while (regexMatcher.find()) {
// matched text: regexMatcher.group()
// match start: regexMatcher.start()
// match end: regexMatcher.end()
}

那会一一捕获@property.one@, @property.two@等。

关于java - 正则表达式 - 捕获所有重复组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6835970/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com