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

find number and add and operation character (java, knime)

我正在使用带有字符串替换器节点的 knime,并且必须在数字后面(在字符串单元格内)添加数学运算符号(乘法,'*')。我找到了带有(java-based)正则表达式

的数字
((?:\d+\.)?\d+ )

我尝试通过添加替换文本来添加乘法运算

((?:\d+\.)?\d+)\*

但是替换现在会创建如下内容:

待替换:

1.456 substance

实际替换为:

((?:\d+\.)?\d+)\*substance

但需要的是:

1.456*substance

如何修改替换文本以获得所需的输出或什么是正确的方法?

谢谢。

请注意,当您搜索 文本时,您使用的是正则表达式模式,而在替换时,您需要替换字符串。替换字符串不能包含模式,但它可以包含对捕获组(编号组或命名组)的反向引用。

在Java中,反向引用是用$+number符号引用的。

因此,使用 ((?:\d+\.)?\d+)\s 正则表达式和 * 替换字符串,您可以获得所需的内容:1.456*substance.

看看你的updated regex demo

请注意,要匹配浮点值,您可以考虑使用 (\d+(?:\.\d+)?)\s(\d*\.?\d+)\s 正则表达式模式。有关匹配各种浮点数的复杂模式,请参阅 Matching Floating Point Numbers with a Regular Expression at regular-expressions.info.