如何在规则中混合使用 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)}));