このディレクトリの索引

# 出典 :: 正規表現 Part8 #31 # 正規表現でとあるスレの、特定のURLを含まないレスをあぼーんにしたいと考えています # 特定のURLは"mt=8"と"hibari"が含まれたURLです # [^(mt=8)(hibari)] # と試しましたが駄目でした。どのようにすればよいのでしょうか? # # '正規表現でとあるスレの、特定のURLの要素を含まないレスをあぼーんにしたい'(_レス) :- 'URLを切り出す'(_レス,_前文字列,URL,_後文字列), アボーンしたい(URL),!. 'URLを切り出す'(_レス,_前文字列,URL,_後文字列) :- atom_concat(_前文字列,_残り文字列,_レス), atom_concat(URL,_後文字列,_残り文字列). アボーンしたい(URL) :- プロトコルを除いたURL(URL,_プロトコルを除いたURL), 特定のURLの要素を含まない(_プロトコルを除いたURL). 特定のURLの要素を含まない(_プロトコルを除いたURL) :- \+(特定のURLの要素を含む(_プロトコルを除いたURL)). プロトコルを除いたURL(URL,_プロトコルを除いたURL) :- 副文字列(URL,_,_プロトコル,_プロトコルを除いたURL), member(_プロトコル,['http','HTTP','ftp','FTP','mailto']). 特定のURLの要素を含む(_プロトコルを除いたURL) :- 項目区切り(_プロトコルを除いたURL,[' ','&','?','/','://','/'],_要素ならび), 特定のURLの要素は要素ならびに必ず含まれる(_要素ならび). 特定のURLの要素は要素ならびに必ず含まれる(_要素ならび) :- forall(特定のURLの要素(_特定のURLの要素),member(_特定のURLの要素,_要素ならび)). 特定のURLの要素('mt=8'). 特定のURLの要素(hanabi). 項目区切り(_文字列,_区切り文字列ならび,_区切られた文字列ならび) :- 項目区切り(_文字列,_区切り文字列ならび,_使われている区切り文字ならび,_区切られた文字列ならび). 項目区切り(_文字列,_区切り文字列ならび,_使われている区切り文字ならび,_区切られた文字列ならび) :- 先頭から区切り文字列で区切って行く(_文字列,_区切り文字列ならび,_使われている区切り文字ならび,_区切られた文字列ならび),!. 項目区切り(_文字列,_,[],[_文字列]). 先頭から区切り文字列で区切って行く(_文字列,_区切り文字列ならび,[_区切り文字列|R1],[_前文字列|R2]) :- '区切り文字列で前文字列、後文字列に区切る'(_文字列,_区切り文字列ならび,_前文字列,_区切り文字列,_後文字列), 項目区切り(_後文字列,_区切り文字列ならび,R1,R2). '区切り文字列で前文字列、後文字列に区切る'(_文字列,_区切り文字列ならび,_前文字列,_区切り文字列,_後文字列) :- 副文字列(_文字列,_前文字列,_区切り文字列,_後文字列), member(_区切り文字列,_区切り文字列ならび). 副文字列(_文字列,_前文字列,_副文字列,_後文字列) :- atom_concat(_前文字列,_残り文字列,_文字列), atom_concat(_副文字列,_後文字列,_残り文字列). 文字列ならびの中で数値に変換可能なものは変換する(_文字列ならび,_項目ならび) :- findall(_項目,( 文字列を取り出し数値に変換可能なものは変換する(_文字列ならび,_項目)),_項目ならび). 文字列を取り出し数値に変換可能なものは変換する(_文字列ならび,_項目) :- member(_文字列,_文字列ならび), 数値に変換可能なものは変換する(_文字列,_項目). 数値に変換可能なものは変換する(_文字列,_項目) :- atom_number(_文字列,_項目),!. 数値に変換可能なものは変換する(_文字列,_文字列).