• ベストアンサー

正規表現での文字列検索

WIN7で使用しているアプリケーションで文字列検索する場合の 正規表現について教えてください。 問) 下記の例文で「A」を含む文字列を検索する場合に、「▼」が含まれる場合は 最後の「▼」の後に「A」がある場合のみ検索したい。 例文の場合、(2)、(3)のみヒットさせたい。 例文) (1)***A**▼**▼*** (2)****▼*A** (3)**A**** (4)***▼**A▼**** *、▼の数はいろいろで*は任意の文字です。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • asciiz
  • ベストアンサー率70% (6803/9674)
回答No.1

正規表現では、考え方の切り替えも必要になりますね。 お書きの問いは、「Aの後のどこにも▼が無いもの」と読み替えることが可能です。 それならば、次のパターンにてヒット可能です。 A[^▼]*$ 「[^▼]」の部分は、「▼を含まない文字集合」を表します。 それが任意長(*)続くということは、「▼を含まない文字列」を表します。 ですので、↑の正規表現は「Aの後に任意長の文字列、ただし、行末($)まで▼をまったく含まない」というパターンとなり、(2)および(3)にマッチします。

yopparai2
質問者

お礼

(asciiz)さん 早々に回答ありがとうございます。 >「Aの後のどこにも▼が無いもの」< そうですね! 素晴らしい発想の転換と思います。 ストンっと理解できました。 ただただ、感謝感謝です。 こういう考え方ができる人が本当にうらやましい..(汗)

関連するQ&A