简体   繁体   English

使用正则表达式从字符串中提取数字

[英]extracting numbers from string using regex

I have a html code below, and with java i need to extract the numbers "25.12" as well as 8, 15, 17 etc. to store them inside array. 我下面有一个html代码,使用java我需要提取数字“ 25.12”以及8、15、17等,以将它们存储在数组中。 Cant figure the proper regEx syntax. 无法确定正确的regEx语法。

<td align=center class="mazs" rowspan="2" bgcolor="#B5DA70">25.12</td>    
<td align=center class="mazs" rowspan="2" bgcolor="#B5DA70">8</td>
<td align=center class="mazs" rowspan="2" bgcolor="#B5DA70">15</td>
<td align=center class="mazs" rowspan="2" bgcolor="#B5DA70">17</td>
<td align=center class="mazs" rowspan="2" bgcolor="#B5DA70">18</td>
<td align=center class="mazs" rowspan="2" bgcolor="#B5DA70">20</td>

read line by line from the file, then: 从文件中逐行读取,然后:

String yourValue = line.replaceAll("<[^>]*>","");

be careful, using regex to "parse" html is not the right way. 请注意,使用正则表达式“解析” html是不正确的方法。 For example, if there was line breaks in your html codes, the regex replace will fail. 例如,如果您的html代码中有换行符,则正则表达式替换将失败。

Here's how to do it in 1 line: 这是在1行中执行的方法:

String[] numbers = str.replaceAll("<.*?>", " ").trim().split("\\s+");

See live demo . 观看现场演示

如果所有行都是单独出现的,并且没有变化,则可以按如下所示使用非常简单的正则表达式并获取Matcher.group(1)

>(.*)<

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM