我想从下面的字符串中获得 116.83 和 81.16 。我尝试了 \ d ,但它也从 up2 和 dn2 中选择了2。我怎么能忽略这一点。
<td align="right">
116.83<span class="up2"></span><br>81.16<span class="dn2"></span>
</td>
答案 0 :(得分:4)
\b[\d.]+\b
\b
匹配单词和非单词字符之间的边界,但不包括匹配中的相邻字符。由于字母和数字都是单词字符,因此p
和2
之间不匹配,因此up2
不匹配。但>
是一个非单词字符,因此它在>
和8
之间匹配,因此正则表达式匹配81.16
。
答案 1 :(得分:1)
尝试这样的事情:
[>\s]+([\d\.]+)[<\s]+
但请务必从第一级匹配中删除前导>
和空格以及尾随<
和空格,或仅使用第二级匹配。