gpt4 book ai didi

JAVA 正则表达式 :Make nested same values into single group

转载 作者:行者123 更新时间:2023-12-02 13:28:08 25 4
gpt4 key购买 nike

我有一个关于正则表达式的问题。

我想将嵌套的相同值放入一个组中。

但是,我试图使用正则表达式,但行不通。

示例字符串:

<one listtype="NumberList1">one</one>
<one listtype="NumberList1">one</one>
<one listtype="NumberList1">one</one>

我想要三个<one></one>标记为单个组。

我该怎么做?

我的正则表达式模式是:

Pattern pattern = Pattern.compile("(<one (.*?)>(.*?)</one>)+");
Matcher matcher = pattern.matcher(val);
while (matcher.find()) {
System.out.println("group 1: " + matcher.group(1));
}

我的结果是:

 group 1:<one listtype="NumberList1">one</one>
group 1:<one listtype="NumberList1">one</one>
group 1:<one listtype="NumberList1">one</one>

我想要:

group 1:<one listtype="NumberList1">one</one><one listtype="NumberList1">one</one><one listtype="NumberList1">one</one>

我想将其作为一个组。

我该怎么做?

最佳答案

如果你想匹配三个这样的<one>连续标记,然后使用适当的模式:

Pattern pattern = Pattern.compile("((?:<one (?:.*?)>(?:.*?)</one>\\s*){3})");
Matcher matcher = pattern.matcher(val);
while (matcher.find()) {
System.out.println("group 1: " + matcher.group(1));
}

此处演示:

Rextester

关于JAVA 正则表达式 :Make nested same values into single group,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43314729/

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