可能重复:
Far Negative Lookbehind
我一直在努力让这个工作起来。昨天我有一个类似的问题,但它并没有真正帮助。基本上我正在尝试创建一个匹配的模式:
(a)
其中“a”可以是任何字母,例如:[a-zA-Z]
。但是,这不符合paragraph (a), (b), (c), (d) or (e);
,因为它以单词paragraph
开头。如果它只是(a), (b), (c), (d) or (e)
那么它应该会导致找到5个匹配项。
答案 0 :(得分:1)
这就是你要找的东西
^(?![^()]*paragraph).*?\([a-zA-Z]\)
使用multiline
选项
您可以先解决所有不包含paragraph
的行,然后收集个人([a-zA-Z])
Pattern p=Pattern.compile("^(?!.*paragraph).*$",Pattern.MULTILINE);
Matcher m=p.matcher(input);
while(m.find())
{
Matcher mm=Pattern.compile("\\([a-zA-Z]\\)").matcher(m.group(0));
while(mm.find())
{
System.out.println(mm.group(0));
}
}