如何在规则中混合使用 Ruta 类型和正则表达式?
How do you mix Ruta types and regexes within a rule?
我想匹配街道名称及其门牌号,它们也可以包含一个字符和一系列门牌号。
例如:
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"
并且根本没有识别出 HouseNumber。而使用 "b"
我可以在示例中识别出街道的第一部分 Birkenstraße 22b
。
如何在 UIMA Ruta 的规则中混合使用此正则表达式?
我在脚本的开头声明了一个类型并像这样分配它:
DECLARE CHARS;
W{REGEXP("[a-zA-Z]") -> MARK(CHARS)};
之后,我像这样将类型 CHARS
添加到我的规则中,它起作用了:
(Street PERIOD? ((NUM CHARS? (("/"|"-") NUM CHARS?)?) {-> MARK(HouseNumber)}));
我想匹配街道名称及其门牌号,它们也可以包含一个字符和一系列门牌号。
例如:
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"
并且根本没有识别出 HouseNumber。而使用 "b"
我可以在示例中识别出街道的第一部分 Birkenstraße 22b
。
如何在 UIMA Ruta 的规则中混合使用此正则表达式?
我在脚本的开头声明了一个类型并像这样分配它:
DECLARE CHARS;
W{REGEXP("[a-zA-Z]") -> MARK(CHARS)};
之后,我像这样将类型 CHARS
添加到我的规则中,它起作用了:
(Street PERIOD? ((NUM CHARS? (("/"|"-") NUM CHARS?)?) {-> MARK(HouseNumber)}));