gpt4 book ai didi

java - Reg 替换文本 block 第一次出现 + 最后一次出现

转载 作者:行者123 更新时间:2023-12-01 15:15:58 25 4
gpt4 key购买 nike

问一个小问题。

我必须在几个字符串中引用文本,其中一个字符串第一次出现,另一个字符串最后一次出现。

例如。

[quote]
Hi to all
[quote]
im fine
[/quote]
[/quote]

我讨厌将所有引用的文本写入 DIV 中。所以我有一个正则表达式,例如:

String pattern = "\\[quote\\](.*?)\\[\\\quote\\\]";
body = body.replaceAll(pattern, "<div class=\"quote\">[quote]$1[/quote]</div>");

它有效,但正则表达式从第一个 [quote] 到第一个 [/quote],将第二个 [/quote] 留在 DIV 之外。我想要获得的是:

<div class="quote">
[quote]
Hi to all
[quote]
im fine
[/quote]
[/quote]
</div>

谢谢。

最佳答案

听起来,正如 @nhahtdh 所说,您只是想删除 ? 以使 * 变得贪婪。

比较:

public static void main(String[] args) {
String input = "[quote]\n"
+ "Hi to all\n"
+ "[quote]\n"
+ "im fine\n"
+ "[/quote]\n"
+ "[/quote]\n";

System.out.println( input.replaceAll( "(?s)\\[quote\\](.*?)\\[/quote]", "<div class=\"quote\">\n[quote]$1[/quote]\n</div>" ));
System.out.println();
System.out.println( input.replaceAll( "(?s)\\[quote\\](.*)\\[/quote]", "<div class=\"quote\">\n[quote]$1[/quote]\n</div>" ));
}

输出:

<div class="quote">
[quote]
Hi to all
[quote]
im fine
[/quote]
</div>
[/quote]


<div class="quote">
[quote]
Hi to all
[quote]
im fine
[/quote]
[/quote]
</div>

关于java - Reg 替换文本 block 第一次出现 + 最后一次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11612609/

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