我正在使用字符串替换节点的knime,并且必须在数字后面添加一个数学运算符号(乘法,'*')(在字符串单元格内)。我用(基于java的)正则表达式
找到这些数字((?:d+.)?d+ )
我试图通过添加替换文本
来添加乘法运算((?:d+.)?d+)*
但是替换后的结果是:
要替换的:
1.456 substance
实际上被替换为:
((?:d+.)?d+)*substance
但需要的是:
1.456*substance
如何修改替换文本以获得所需的输出,或者正确的方法是什么?
谢谢。
注意,当您搜索文本时,您使用的是正则表达式模式,而在进行替换时,您需要一个替换字符串。替换字符串不能包含模式,但它可以包含对捕获组(编号或命名组)的反向引用。
在Java中,反向引用是用$
+ number
表示法来引用的。
因此,使用((?:d+.)?d+)s
regex和$1*
替换字符串,您可以得到您需要的:1.456*substance
.
查看更新后的regex演示。
请注意,为了匹配浮点值,您可以考虑使用(d+(?:.d+)?)s
或(d*.?d+)s
正则表达式模式。有关匹配各种浮点数的复杂模式,请参见正则表达式使用正则表达式匹配浮点数,详见Regular -expressions.info.