java - 在 RapidMiner 中使用正则表达式生成新属性

标签 java regex rapidminer

我使用 Excel 文件,其中包含几个句子。我想生成新属性(我使用“生成属性”运算符),如果句子包含一些数字之间有空格(例如 234 45 56),则返回(“true 或 false”)。我使用了函数“匹配名义正则表达式”(matches(sentences,"\d+\s+\d))来执行此操作。但是,我遇到了 Rapidminer 无法识别转义 () 字符的问题。如何更改我的正则表达式以使其正常工作?

一些附加评论/示例:

我输入的句子:

word word 123 345 6665 23456  54 word word word
word word word 12.3 34.5 6665 23.456  5.4 word word word
word word word 12,3    34,5 6665 23,456  5.4 word word word
word word word 12,3%    34,5% 6665% 23,456%  5.4% word word word

如果句子包含这样的数字链,我的输出将是带有 true 或 false 的新变量。

我首先想到使用以下正则表达式来捕获数字\d+[.,]?\d*\s+\d+[.,]?\d*.

最佳答案

您可以将 \d 表示为 [0-9],将 \s 表示为空格。另外,似乎您需要将整行与 matches 匹配,因此,添加 .*

match(sentences,".*[0-9] +[0-9].*")

这匹配除换行符之外的任何 0+ 个字符(尽可能多),后跟一个数字、1+ 个空格和一个数字,然后再匹配除换行符之外的 0+ 个字符。

另外,尝试将 \ 加倍以匹配 \d\s (因为正则表达式是 Java 风格):

matches(sentences,".*\\d+\\s+\\d.*")

关于java - 在 RapidMiner 中使用正则表达式生成新属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37989972/

相关文章:

regex - 如何在使用正则表达式 Windows csv 时保留换行符

java - MongoDB 将文档转换为自定义类型

java - 我如何告诉 Maven Artifact 已重命名?

java - 无法登录 Kylo

regex - 正则表达式表示连续两个相同的元音

csv - 快速矿工: CSV with real numbers with commas instead of dots

java - 如何根据情况判断是使用邻接矩阵还是邻接数组

javascript - 正则表达式,如何匹配但只捕获符号后面的内容

.net - 仅完全匹配的正则表达式

java - 将 RapidMiner 流程​​与 Java 集成