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

标签 java regex string replace knime

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

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

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

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

但是替换现在会创建类似以下内容的内容:

要替换的:

1.456 substance

实际替换为:

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

但需要的是:

1.456*substance

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

谢谢。

最佳答案

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

在 Java 中,反向引用使用 $+number 表示法进行引用。

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

查看您的 updated regex demo

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

关于java - 查找数字并添加和操作字符(java,knime),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33099005/

相关文章:

java - Selenium webdriver 等待,元素不可点击异常

java - 强制 Java 泛型参数为同一类型

Java:弃用的工具

javascript - 正则表达式以反斜杠结尾

python - python 在计算机中如何存储字符串?

jquery - 检查 jQuery 中的选择器是否为空

java - Java 中是否可以替换数组?

java - 匹配事件 ID 的正则表达式(不那么贪婪)

javascript - 结合 angularjs 表单字段的两个正则表达式

java - 查找两个 "/"之间的子字符串