テキストの例:公園では、子供が遊んでいます。子供は背が高い。子供は遊んでいる別の子供を見ています。
最初の文の「子」、2番目と3番目の文の「子」は一致させたいが、3番目の文の「子」は一致させたくない。つまり、「Child」または「child」と一致しますが、「another」という単語が続く場合は一致しません。
ネガティブルックビハインドを使ってできると思った
((?<\!another) [Cc]hild)
しかし、有効な正規表現を生成するための構文を正しく取得できないようです。
構文を正しく理解できたとしても、GWTでそれを実行できるかどうかはわかりません。これはGWTJavadocからのスニペットです
正規表現構文のJava固有の構造(たとえば
[a-z&&[^bc]], (?<=foo), \A, \Q)
、GWT実装ではなく、純粋なJava実装でのみ機能します...
任意の助けや洞察をいただければ幸いです。
アップデート:
コリンの答えはほとんど機能しますが、完全には正しくありません。
コリンの正規表現は「子」と「子」に一致し、私が尋ねたように「別の子」には一致しません。ただし、いくつかの問題があります。
私がやろうとしているのは、「子供」と「子供」を一致させて、子供の性別に応じて、子供の名前または正しい代名詞のいずれかに置き換えることができるようにすることです。
コリンの正規表現の問題は、「、child」と「.Child」に一致することです。また、それがテキストの最初の単語である場合、「子」とは一致しません。例えば:
「子供は公園に行きました。公園では子供が遊んでいます。子供は背が高いです。子供は遊んでいる別の子供を見ています。」
最初の子は一致しません。後続の一致は、「、child」、「。Child」、および「.Child」です。
コリンが「子供」または「子供」とちょうど一致するようにしようと思いついた正規表現に取り組みましたが、それを機能させることはできません。