查找数字和添加和操作字符(java, knime)



我正在使用字符串替换节点的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.

最新更新