查找数字并添加和操作字符(java、knime)
我正在使用字符串替换节点处理knime,必须在数字后面(字符串单元格内)添加一个数学运算符号(乘法“*”)。我使用(基于java的)正则表达式查找数字查找数字并添加和操作字符(java、knime),java,regex,string,replace,knime,Java,Regex,String,Replace,Knime,我正在使用字符串替换节点处理knime,必须在数字后面(字符串单元格内)添加一个数学运算符号(乘法“*”)。我使用(基于java的)正则表达式查找数字 ((?:\d+\.)?\d+ ) 我试图通过添加替换文本来添加乘法运算 ((?:\d+\.)?\d+)\* 但现在,这种替代产生了如下结果: 待替换: 1.456 substance 实际替换为: ((?:\d+\.)?\d+)\*substance 但需要的是: 1.456*substance 如何修改替换文本以获得所需的输出,或者正
((?:\d+\.)?\d+ )
我试图通过添加替换文本来添加乘法运算
((?:\d+\.)?\d+)\*
但现在,这种替代产生了如下结果:
待替换:
1.456 substance
实际替换为:
((?:\d+\.)?\d+)\*substance
但需要的是:
1.456*substance
如何修改替换文本以获得所需的输出,或者正确的方法是什么
谢谢。请注意,搜索文本时使用的是正则表达式模式,替换时需要替换字符串。替换字符串不能包含模式,但可以包含对捕获组(编号或命名组)的反向引用
在Java中,反向引用是用$
+number
符号来引用的
因此,使用((?:\d+\)?\d+\s
regex和$1*
替换字符串,您可以获得所需的:1.456*物质
看看你的
注意,为了匹配浮点值,您可以考虑使用<代码>(\D+(?:\\D+)?)\ < /C>或<代码>(\d*\.d+)\s>代码>正则表达式。有关匹配各种浮点数的复杂模式,请参见regular expressions.info.
我想您是想在替换文本中使用反向引用$1
。类似于$1*物质?@Jongware:没有实际的代码。它是knime中的字符串替换节点,用于后台的java代码。(对不起,我真的是新手)。将其与查找和替换进行比较,例如在记事本中。@Rockbar为什么不(\d*\.\d*)
?您可以检查样本@kucing:I使用替换的$&*
获得了一个“非法组引用”,我正在寻找“反向引用”。您的代码正是解决方案。非常感谢你!