我需要从这个html片段中提取一个特定的值。因为我不想使用任何外部库,使用核心java实现这一点的唯一方法是使用正则表达式。由于我从未使用过正则表达式,如果您可以建议如何从下面的输入中检索整数值,那将会很棒。
<tr><td>GLOBALID=123245</td></tr>
我需要提取分配给GLOBALID
的整数值。
答案 0 :(得分:1)
String text = "GLOBALID=123245";
Pattern p = Pattern.compile("GLOBALID=(\\d+)");
Matcher m = p.matcher(text);
if (m.find()) {
System.out.println(m.group(1));
}
答案 1 :(得分:0)
答案 2 :(得分:0)
它是XML的并不重要。将输入视为普通字符串,您可以使用String globalId = str.replaceAll("(?s)(?:.(?!GLOBALID))*(?:.GLOBALID=(\\d+))?.*", "$1");
:
(?s)
这使用正则表达式中的捕获组(与整个输入匹配)和替换术语中的后引用。
DOTALL标志String globalId = str.replaceAll("(?s).*GLOBALID=(\\d+).*", "$1");
就在那里,即使输入中嵌入了换行符也能正常工作(感谢{{3}})。
方便的是,由于可选(非捕获)组,如果输入中没有全局ID,则结果将为空白。
如果您确定它始终存在,您可以将正则表达式简化为:
{{1}}
当(如此处)匹配是一个简单的标记时,您可以避免使用XML解析库(我喜欢瘟疫)。