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