我刚开始使用Ruta,我想编写一条规则,找到字符,数字和点(。)的任意组合。
(JAVA Regex for it - ([a-z0-9。] +))
例如 -
abcd.03ef0.3abc
03a.bcd.03eeff903a.bc
答案 0 :(得分:1)
如下所示:
(SW | NUM | PERIOD)+{-> MyType};
或者是否还应包括大写字符:
(W | NUM | PERIOD)+{-> MyType};
之前更改过滤设置,如果之间不存在空格:
Document{-> RETAINTYPE(SPACE,BREAK,MARKUP)};
为了避免重叠匹配,您可以使用MARKONCE代替隐式动作,使用附加(否定)条件-PARTOF(MyType),或者使用GREEDYANCHORING更改匹配策略。
答案 1 :(得分:0)
我一直在看这个问题。我也有类似的问题。
我的问题是匹配用逗号分隔的大数字,如: 123343223
我写了类似于答案的规则,但它产生了太多的匹配:
123,343,223
123,343
343,223
....
我的规则如下:
(NUM COMMA)+ {-> LargeNum} NUM;
它不能完全匹配我想要匹配的东西,即。 123343223。问题是量词。您需要量词才能重复应用相同的规则。但结果是它产生了比预期更多的匹配。
显然,它需要进一步过滤。