Regex 如何在规则中混合Ruta类型和正则表达式?
我想匹配街道名称和他们的门牌号,也可以包含一个字符和一系列门牌号 例如:Regex 如何在规则中混合Ruta类型和正则表达式?,regex,ruta,Regex,Ruta,我想匹配街道名称和他们的门牌号,也可以包含一个字符和一系列门牌号 例如: Birkenstraße 22b Birkenstraße 22b-23a Birkenstraße 22b/23z 为此,我在ruta脚本中有以下规则: (Street PERIOD? ((NUM "b"? (("/"|"-") NUM "b"?)?) {-> MARK(HouseNumber)})); “b”是我想要匹配所有字符的地方,就像在带有[a-zA-Z]的正则表达式中一样。但是我试着用“[a-zA-Z
Birkenstraße 22b
Birkenstraße 22b-23a
Birkenstraße 22b/23z
为此,我在ruta脚本中有以下规则:
(Street PERIOD? ((NUM "b"? (("/"|"-") NUM "b"?)?) {-> MARK(HouseNumber)}));
“b”
是我想要匹配所有字符的地方,就像在带有[a-zA-Z]
的正则表达式中一样。但是我试着用“[a-zA-Z]”
替换“b”
,但根本没有识别出门牌号。而使用“b”
我可以在我的示例中识别出街道的第一部分Birkenstraße 22b
如何在UIMA Ruta中的规则中混合此正则表达式?在脚本开始时,我声明了一个类型并按如下方式分配它:
DECLARE CHARS;
W{REGEXP("[a-zA-Z]") -> MARK(CHARS)};
之后,我将类型CHARS
添加到我的规则中,如下所示:
(Street PERIOD? ((NUM CHARS? (("/"|"-") NUM CHARS?)?) {-> MARK(HouseNumber)}));