查找数字并添加和操作字符 (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.
我正在使用带有字符串替换器节点的 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.