我需要为字符串定义一个模式,并在java eclipse环境中查找句子中的所有匹配项。 这在我的代码中:
public static final String EXAMPLE_TEST = "MD_pos ";
public static final String REGEX ="(RB_pos)?(MD_pos|VB_pos|VBD_pos|VBP_pos|VBZ_pos|VBG_pos|VBN_pos) (RP_pos)? (RB_pos)? ";
public void PatMat() {
Pattern pattern = Pattern.compile(REGEX);
Matcher matcher = pattern.matcher(EXAMPLE_TEST);
int count = 0;
while(matcher.find()) {
count++;
System.out.println("found: " + count + " : "
+ matcher.start() + " - " + matcher.end());
System.out.println("found: " + matcher.group());
}
}
带有?
登录模式的部分是可选的,因此应匹配MD_pos
。但是每当我调用这个方法时,控制台都没有结果。
答案 0 :(得分:5)
您的REGEX
包含三个非可选空格,这些空格不在您尝试匹配的示例字符串中。
答案 1 :(得分:1)
您忘记在COMMENTS
模式下编译,因此会忽略空格。
Pattern pattern = Pattern.compile(REGEX, Pattern.COMMENTS);