我有一个匹配类似
的模式...
<span class="count">1036</span>
...
但我不想匹配
<span class="count">1036</span></span>
因为它会抓住
1036</span>
但无论如何我不想抓住双倍跨度,因为我不需要这些数据。 我需要跨度和行尾之间的数据。
我在跨度结束时尝试了\ n但它没有工作...... 这是模式:
private static final Pattern COUNT = Pattern.compile("<span class=\"count\">(.+?)</span> ");
感谢您的回答
答案 0 :(得分:0)
“行尾”的正则表达式代码为$
。
尝试:
private static final Pattern COUNT = Pattern.compile("<span class=\"count\">(.+?)</span>$ ");
答案 1 :(得分:0)
使用多行开关(?m)
,这会使^和$匹配行的开头/结尾。
Pattern COUNT = Pattern.compile("(?m)<span class=\"count\">(.+?)</span>$");
答案 2 :(得分:0)
尝试使用括号内的正则表达式的分组功能()并使用Matcher#group(1)
获取它。
正则表达式
<span class="count">([^<]*?)</span>
示例代码:
Pattern pattern = Pattern.compile("<span class=\"count\">([^<]*?)</span>");
Matcher matcher = pattern.matcher("<span class=\"count\">1036</span></span>");
while (matcher.find()) {
System.out.println(matcher.group(1));
}
输出:
1036