正则表达式不匹配为一个组

时间:2017-05-18 07:40:17

标签: java regex

我正在尝试在可能用星号表示的字符串中匹配xx.xxxx.xx.x等数值。

*10.00
5.0

匹配奇异数字

*1
5m

并将其替换为彩色版本,但我的模式与字符串中的整个元素不匹配,但是多个部分

以下是我尝试过的内容:https://ideone.com/vZwCzh

String string = "*10.00 5.0 *1 5m";
System.out.println(string.replaceAll("([\\*?0-9.]){3,15}", "<span style=\"color:yellow\">$1</span>")); 

我得到了

<span style="color:yellow">0</span> <span style="color:yellow">0</span> *1 5m

而不是

<span style="color:yellow">*10.00</span> <span style="color:yellow">5.0</span> *1 5m

1 个答案:

答案 0 :(得分:0)

您可以替换它:
\*?\d(?:\d\.\d\d?|\d?\.\d)
通过这个:
<span style="color:yellow">$0</span>

演示here