gpt4 book ai didi

java - 如何提取子字符串(html)和另一个子字符串(将用于正则表达式)并将其全部放置在正确的格式中?

转载 作者:行者123 更新时间:2023-11-30 02:40:00 24 4
gpt4 key购买 nike

我有一个巨大的字符串,其中包含以下代码,我需要以这样的方式提取包含内容:如果有任何 HTML 附加它,并且如果任何子字符串包含以下模式,则创建一个链接将其以正确的格式和位置导出并继续。

示例:

<div id="contentPermission"> 
[[MI44,MI304,MI409,MI45,MI264,MI108,MI46,MI47,MI48,MI49,MI50,MI51,MI52,MI58,MI530]]

</div>
<div>&nbsp;</div>

<p>&nbsp;</p>

<div>&nbsp;</div>

<p>&nbsp;</p>

<p>[[LP1137]]</p>

模式:以“[[”开始,以“]]”结束上面的表格代码:

[[anything between these brackets]]

所以外面应该是这样的:

<div id="contentPermission"> 

<a href="index?page=content&id=MI44></a>

<a href="index?page=content&id=MI304></a>

<a href="index?page=content&id=MI409></a>

......

......
</div>
<div>&nbsp;</div>

<p>&nbsp;</p>

<div>&nbsp;</div>

<p>&nbsp;</p>

<p><a href="index?page=content&id=LP1137></a></p>

最佳答案

解决方案

public static void main(String[] args) {

StringBuilder str = new StringBuilder("<div id=\"contentPermission\">"
+ " [[MI44,MI304,MI409,MI45,MI264,MI108,MI46,MI47,MI48,MI49,MI50,MI51,MI52,MI58,MI530]]"
+ "</div><div>&nbsp;</div><p>&nbsp;</p><div>&nbsp;</div><p>&nbsp;</p><p>[[LP1137]]</p>");

System.out.println("Before " + str.toString()+"\n\n\n");

Pattern pattern = Pattern.compile("\\[{2}.[^\\]]*\\]{2}");
Matcher matcher = pattern.matcher(str);

while(matcher.find()){

String codes = matcher.group(0);
codes = codes.substring(2, codes.length()-2);

StringBuilder urls = new StringBuilder();
for(String code:codes.split(",")){
urls.append("<a href=\"index?page=content&id=" + code + "></a>\n");
}
str = new StringBuilder(matcher.replaceFirst(urls.toString()));
matcher = pattern.matcher(str);
}

System.out.println("Replaced " + str.toString());
}

关于java - 如何提取子字符串(html)和另一个子字符串(将用于正则表达式)并将其全部放置在正确的格式中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42050918/

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