Java 用浮点数替换整数的正则表达式
我们试图用字符串中的浮点值替换整数值,例如:Java 用浮点数替换整数的正则表达式,java,regex,actionscript-3,Java,Regex,Actionscript 3,我们试图用字符串中的浮点值替换整数值,例如: #var1 * #var2/ 1+100 - 2 + 1.5 - .5 正则表达式应该匹配1、100和2,但不能匹配已经是浮点数的数字,例如1.5和.5 我得到了/[^\w]\d+/,它可以自己找到数字。 现在,如何从正则表达式中排除后跟\.?\d+的数字 正则表达式应该在Java或ActionScript3中工作 为什么不试着向前看?我相信它可以与Java一起工作,对ActionScript一无所知 [^\w]\d+?![.]\d+/ 将只匹配那
#var1 * #var2/ 1+100 - 2 + 1.5 - .5
正则表达式应该匹配1、100和2,但不能匹配已经是浮点数的数字,例如1.5和.5
我得到了/[^\w]\d+/,它可以自己找到数字。
现在,如何从正则表达式中排除后跟\.?\d+的数字
正则表达式应该在Java或ActionScript3中工作
为什么不试着向前看?我相信它可以与Java一起工作,对ActionScript一无所知 [^\w]\d+?![.]\d+/
将只匹配那些没有紧跟着一个点整数的数字序列。为什么不尝试向前看?我相信它可以与Java一起工作,对ActionScript一无所知 [^\w]\d+?![.]\d+/ 将只匹配那些不紧跟点整数的数字序列。您可以使用n来表示 将排除这一点,但您需要将其与锚点相结合,否则您将得到一个对等匹配
/(?<!\B|\.)(\d+)(?!\.\d+)\b/
您还应该更改数字前的非单词字符。我在这里使用了一个否定的lookback断言?。它确保数字前没有点,或者在单词边界上没有要匹配的非单词边界双重否定
看到了吗你可以用n来表示
将排除这一点,但您需要将其与锚点相结合,否则您将得到一个对等匹配
/(?<!\B|\.)(\d+)(?!\.\d+)\b/
您还应该更改数字前的非单词字符。我在这里使用了一个否定的lookback断言?。它确保数字前没有点,或者在单词边界上没有要匹配的非单词边界双重否定
请参见这将在Java中工作:/?。它同时使用lookahead和lookahead来停止匹配前面或后面有点/字母的数字。这在Java:/?。它同时使用lookahead和lookahead来停止匹配前面或后面有点/字母的数字。如果您的正则表达式语法支持lookahead,您可以使用它。Java有;不确定AS3
/[^\w.]\d+(?!\.)/
请注意,在这种情况下,您希望在替换中使用整个匹配的字符串。如果您的正则表达式语法支持前瞻,您可以使用它。Java有;不确定AS3
/[^\w.]\d+(?!\.)/
请注意,在这种情况下,您希望在替换中使用整个匹配的字符串。我的建议是
\b(?<!\.)\d+(?!\.)\b
我的建议是
\b(?<!\.)\d+(?!\.)\b
谢谢你的回答。使用?现在,这是@Marko Topolnik的答案,添加了一个用于替换数字的捕获组。感谢您的回答。使用?现在,这是@Marko Topolnik的答案,为要替换的数字添加了一个捕获组。