0

重複の可能性:
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

4

1 に答える 1

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));
     }
 }
于 2013-02-01T08:43:08.823 に答える