正则表达式负面观察

时间:2013-02-01 08:33:33

标签: java regex

  

可能重复:
  Far Negative Lookbehind

我一直在努力让这个工作起来。昨天我有一个类似的问题,但它并没有真正帮助。基本上我正在尝试创建一个匹配的模式:

(a)其中“a”可以是任何字母,例如:[a-zA-Z]。但是,这不符合paragraph (a), (b), (c), (d) or (e);,因为它以单词paragraph开头。如果它只是(a), (b), (c), (d) or (e)那么它应该会导致找到5个匹配项。

http://regexr.com?33ka2

1 个答案:

答案 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));
     }
 }