このディレクトリの索引

# 出典::正規表現 Part10 #301 # よろしくお願いします。 # # ●正規表現の使用環境 # サクラエディタ bregonig.dll Ver.3.02 # # ●検索か置換か? # 検索 # # ●説明 # "START"から"END"に囲まれた"HOGE"を最短一致(というのか?)で含まれる行を検索したい # # ●対象データ # 1.xxxxxxxSTARTyyyyyyyyHOGEzzzzzzzzzzzENDaaaaaaa # 2.xxxxxxxSTARTyyyyyyyyENDbbbbbbbHOGEzzzzzzzzzzzENDaaaaaaa # # ●希望する結果 # 1.だけマッチ # 2.は"END"が"HOGE"の前に入ってるのでマッチ対象外 # # '"START"から"END"に囲まれた"HOGE"を最短一致(というのか?)で含まれる行を検索したい '(_文字列) :- sub_atom(_文字列,_,_STARTからENDに囲まれた文字列,_), sub_atom(_STARTからENDに囲まれた文字列,'START',_HOGEを含む文字列,'END'), sub_atom(_HOGEを含む文字列,_HOGEの前文字列,'HOGE',_HOGEの後文字列), '文字列の中にENDが存在しない'(_HOGEの前文字列), '文字列の中にSTARTが存在しない'(_HOGEの前文字列), '文字列の中にENDが存在しない'(_HOGEの後文字列), '文字列の中にSTARTが存在しない'(_HOGEの後文字列),!. sub_atom(_文字列,_前文字列,_適合文字列,_後文字列) :- sub_atom(_文字列,S,_,R,_適合文字列), sub_atom(_文字列,0,S,_,_前文字列), sub_atom(_文字列,_,R,0,_後文字列). '文字列の中にSTARTが存在しない'(_文字列) :- \+(sub_atom(_文字列,_,_,_,'START')). '文字列の中にENDが存在しない'(_文字列) :- \+(sub_atom(_文字列,_,_,_,'END')).