1

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

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

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

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

但是替换现在创建了类似的东西:

将被替代:

1.456 substance

实际替换为:

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

但需要的是:

1.456*substance

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

谢谢你。

4

1 回答 1

2

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

在 Java 中,反向引用是用$+number表示法引用的。

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

查看您更新的正则表达式演示

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

于 2015-10-13T10:56:44.533 回答