2

我正在尝试解析韩语、中文等非英语语言的内容。UIMA 是否有任何内置支持。我无法在 Apache UIMA 门户中获得太多关于此的信息。我所能想到的只是想出 unicode 正则表达式模式,但即使是那些出于某种原因似乎也不起作用。我的具有 unicode 字符的正则表达式模式没有注释我需要的单词。

我正在使用JDK1.7UIMA 2.4.2。

非常感谢任何帮助或建议。

下面是我正在尝试的示例

文本:Numéro de réservation 445566553 代码[此文本位于我正在使用 FileSystemCollectionReader 读取的文件中,并且我已将编码设置为 UTF-8]

我的正则表达式 (?<=Num\u00E9ro\sde\sr\u00E9servation\s)(.*?)(?=\sCode)

预期输出:445566553

4

1 回答 1

0

我不确定您遇到的问题是否与 uima 有关,但是在使用纯 java 时,您发布的正则表达式对我来说似乎很好。我正在使用 java 1.7.0_45。我稍微修改了您的正则表达式,以允许数字周围有多个空格。这是一个 SSCCE,运行时输出为'445566553'

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexExample {
    public static void main(String[] args) {
        String test = "Numéro de réservation   445566553 \tCode";
        Pattern pattern = Pattern.compile("(?<=Num\\u00E9ro\\sde\\sr\\u00E9servation)\\s+(.*?)\\s+(?=Code)");
        Matcher matcher = pattern.matcher(test);
        while(matcher.find()) {
            System.out.println("'"+matcher.group(1)+"'");
        }
    }
}

如果这不是您想要的,那么提供一个包含您想要修复的测试用例的 SSCCE 会很有帮助。

于 2013-12-17T09:29:40.380 回答