正则表达式用浮点数替换整数

时间:2012-04-20 10:25:33

标签: java regex actionscript-3

我们试图用String中的浮点值替换整数值,例如:

#var1 * #var2/ 1+100 - 2 + 1.5 - .5

正则表达式应与11002匹配,但不应与已浮动的数字匹配,例如1.5.5

我已经到了/[^\w](\d+)/,它自己找到数字。 现在,如何从此正则表达式中排除数字,后跟\.?\d+

RegEx应该使用Java或Actionscript 3。

Regular Expression Test

5 个答案:

答案 0 :(得分:2)

这适用于Java:/(?<![.\w])\d+(?![.\w])/。它使用lookahead和lookbehind来停止匹配数字,这些数字在点/字母之前或之后。

答案 1 :(得分:1)

为什么没有尝试前瞻?我相信它适用于Java,没有关于ActionScript的线索。

[^\w](\d+)(?![.]\d+)/

只匹配那些数字序列,而不是紧跟一个点整数。

答案 2 :(得分:1)

您可以在此

中使用n egative look ahead
(?<!\.\d+)

会排除这一点,但你需要将它与一个锚点结合起来,否则你将得到一个奇异的比赛。

/(?<!\B|\.)(\d+)(?!\.\d+)\b/

您还应该在数字前更改非单词字符。我在这里使用了一个负面的lookbehind断言(?<!\B|\.)。它确保在数字之前没有点或不是非字边界(在字边界上匹配的双重否定。)

here on Regexr

答案 3 :(得分:0)

如果你的正则表达式语法支持超前,你可以使用它。 Java确实;不确定AS3。

/[^\w.]\d+(?!\.)/

请注意,在这种情况下,您需要在替换中使用整个匹配的字符串。

答案 4 :(得分:0)

我的建议是

\b(?<!\.)\d+(?!\.)\b