gpt4 book ai didi

java - 正则表达式从 html 标签(嵌套)获取文本 - Java

转载 作者:行者123 更新时间:2023-11-30 03:06:46 29 4
gpt4 key购买 nike

使用正则表达式,我希望能够获取多个 html 标签之间的文本。这里 HTML 只是用于表示输入,我不担心 HTML 标签,只是想检索 HTML 标签中的内容(在正确的打开标签和关闭标签之间)。例如,以下内容:

所需输入:

<h1>Text 1</h1>
<h1><h2>Text 2</h2></h1>
<h1><h2>Text 3</h2>Xtra</h1>
<h1>Text 4<h1>extra</h1515></h1>
<h1><h1></h1></h1>

所需输出:

Text 1
Text 2
Text 3
None
None

获得的输出:

Text 1
Text 2
Text 3
Text 4<h1>extra</h1515>
<h1></h1>

我尝试过的正则表达式:

"<([\\S ]+)>([\\S ]+)</\\1>"

我没有得到预期的结果。

我的java代码:

import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;

public class Solution{
public static void main(String[] args){

Scanner in = new Scanner(System.in);
int testCases = Integer.parseInt(in.nextLine());
while(testCases>0){
String line = in.nextLine();
String tmp = line;
Pattern r = Pattern.compile("<([\\S ]+)>([\\S ]+)</\\1>", Pattern.MULTILINE);
Matcher m = r.matcher(line);
while(m.find()){
line = line.replaceAll(line, m.group(2));
m = r.matcher(line);
}
if(line != tmp)
System.out.println(line);
else
System.out.println("None");
testCases--;
}
}
}

最佳答案

正如评论中指出的那样,除了痛苦之外什么也没有。对于您尝试做的事情,您最好使用类似 jsoup 的 DOM(文档对象模型)进行遍历。

关于java - 正则表达式从 html 标签(嵌套)获取文本 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34571790/

29 4 0