正则表达式,以避免在已有点

时间:2015-12-10 23:51:02

标签: java regex

我想在行的开头给每个数字后面加一个点。

我试过这个正则表达式:

^([0-9]+)=$0.

请注意,此表达式将作为服务器中的规则(我不能使用任何Java代码)。

当没有点时,它正在工作,但问题是它还在其他地方放置了一个点。

例如,如果文本中有"4.1"之类的内容,则会放置一个点,然后变为"4..1"

如果数字后面已经有一个点,我怎么能避免放置点?

3 个答案:

答案 0 :(得分:0)

捕捉模式== ^([0-9] +)

替换模式== $ 0。

答案 1 :(得分:0)

您可以使用断言来限制匹配 我使用了捕获组,但您可能不需要 另外,请确保将多行标志设置为如此 ^表示行的开头(不是字符串)。

查找:^(\d+)(?![.\d])
替换$1.

格式化:

 ^                      # Beginning of line
 ( \d+ )                # (1), Bunch of digits
 (?! [.\d] )            # If not followed by a dot or another digit
                        # Note -The not digit is to stop it from matching 
                        # the first 12 from 123.3

答案 2 :(得分:0)

如果在前导数字后面有一个点或者没有点,请不要担心,只需删除点(如果它在那里),并且总是放回一个:

AbstractCard[] card = new AbstractCard[0];

这具有以下效果:

search: ^(\d+)\.?
replace: $1.