使用正则表达式,我希望能够在多个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--;
}
}
}