- ベストアンサー
正規表現での文字列検索
WIN7で使用しているアプリケーションで文字列検索する場合の 正規表現について教えてください。 問) 下記の例文で「A」を含む文字列を検索する場合に、「▼」が含まれる場合は 最後の「▼」の後に「A」がある場合のみ検索したい。 例文の場合、(2)、(3)のみヒットさせたい。 例文) (1)***A**▼**▼*** (2)****▼*A** (3)**A**** (4)***▼**A▼**** *、▼の数はいろいろで*は任意の文字です。 よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
正規表現では、考え方の切り替えも必要になりますね。 お書きの問いは、「Aの後のどこにも▼が無いもの」と読み替えることが可能です。 それならば、次のパターンにてヒット可能です。 A[^▼]*$ 「[^▼]」の部分は、「▼を含まない文字集合」を表します。 それが任意長(*)続くということは、「▼を含まない文字列」を表します。 ですので、↑の正規表現は「Aの後に任意長の文字列、ただし、行末($)まで▼をまったく含まない」というパターンとなり、(2)および(3)にマッチします。
お礼
(asciiz)さん 早々に回答ありがとうございます。 >「Aの後のどこにも▼が無いもの」< そうですね! 素晴らしい発想の転換と思います。 ストンっと理解できました。 ただただ、感謝感謝です。 こういう考え方ができる人が本当にうらやましい..(汗)