我正在尝试用非英语语言解析内容,例如韩语,中文等。 UIMA是否有任何内置支持。我无法在Apache UIMA门户网站上获得有关此内容的更多信息。 所有我能想到的都是unicode正则表达式模式,但即使是那些由于某种原因似乎也不起作用。具有unicode字符的正则表达式模式并没有注释我需要的单词。
使用 JDK1.7 , UIMA 2.4.2。
非常感谢任何帮助或建议。
以下我正在尝试的例子
文字:Numéroderéservation445566553代码 [此文本位于我使用FileSystemCollectionReader阅读的文件中,我已将编码设置为UTF-8]
我的RegEx(?< = Num \ u00E9ro \ sde \ sr \ u00E9servation \ s)(。*?)(?= \ sCode)
预期产出:445566553
答案 0 :(得分: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会有所帮助。