Java RegEx - 仅从网页中提取数字

标签 java regex string

我将一个网页转换为字符串,我试图从这一行中提取三个数字。

<td class="col_stat">1</td><td class="col_stat">0</td><td class="col_stat">1</td>

从上面的行我已经使用它提取了第一个'1'

String filePattern = "<td class=\"col_stat\">(.+)</td>";
    pattern = Pattern.compile(filePattern);
    matcher = pattern.matcher(text);
    if(matcher.find()){
        String number = matcher.group(1);
        System.out.println(number);
    }       

现在我想做的是提取 0 和最后一个 1,但只要我尝试编辑上面的正则表达式,它只会在控制台上输出完整的网页。有人有什么建议吗?? 谢谢

最佳答案

正则表达式匹配是贪婪的,试试这个(只查找 (\d+) 而不是 (.+) (匹配所有内容直到最后一个 </td> ):

String text = 
    "<td class=\"col_stat\">1</td>" + 
    "<td class=\"col_stat\">0</td>" + 
    "<td class=\"col_stat\">1</td>";
String filePattern = "<td class=\"col_stat\">(\\d+)</td>";
Pattern pattern = Pattern.compile(filePattern);
Matcher matcher = pattern.matcher(text);
while (matcher.find())
{
    String number = matcher.group(1);
    System.out.println(number);
}

在相关说明中,我完全同意其他人关于使用更结构化的方法来解释 HTML 的建议。

关于Java RegEx - 仅从网页中提取数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12262706/

相关文章:

string - 谷歌采访 : Find Crazy Distance Between Strings

java - 重复主键验证

regex - 使用 Golang 正则表达式在字符串中查找数字

java - 'Optional.get()' without ' isPresent()'检查

php - 如何从字符串中的特定文本和字符获取整数(正则表达式/PHP)

regex - 基于正则表达式的随机文本生成器

regex - 使用 grepl 从模式列表中查找匹配模式

c# - Convert.ToString 返回 string.empty 而不是 null

java - XML文件中的eclipse android编程错误: aborting build

java - 如何在仅垂直滚动 Pane 中布局组件?