我遇到了这个 Hackerrank 问题,正则表达式应该匹配 HTML 标签之间的字符串。正则表达式和字符串是
String str="<h1>Hello World!</h1>";
String regex="<(.+)>([^<]+)</\\1>";
另外,如果“str”有多个类似的 HTML 标签,String str="<h1><h1>Hello World!</h1></h1>"以及如何([^<]+)捕获这个“str”,该怎么办。
我的问题是如何([^<]+)匹配 'str' 而不是([a-zA-Z]+)。
如果完整的源代码在这里:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/* Solution assumes we can't have the symbol "<" as text between tags */
public class Solution{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
int testCases = Integer.parseInt(scan.nextLine());
while (testCases-- > 0) {
String line = scan.nextLine();
boolean matchFound = false;
Pattern r = Pattern.compile(regex);
Matcher m = r.matcher(line);
while (m.find()) {
System.out.println(m.group(2));
matchFound = true;
}
if ( ! matchFound) {
System.out.println("None");
}
}
}
}
不要介意我是否愚蠢地问这个问题并提前谢谢你!
红糖糍粑
繁华开满天机
相关分类