このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1323566370/300
#  テキストファイルの中に 
#  foo=bar 
#  という形式で設定値が列挙されています。 
#  grepかegrepだけでfoo=の右辺値のbarを抽出する正規表現はどうなるでしょうか? 
#  (?<=foo=).* 
#  とかやりたいんですけどgrepもegrepもこの式を受け付けてくれません。 
# 
# 

'テキストファイルの中に foo=bar という形式で設定値が列挙されています。foo= の右辺値のbarを抽出する'(_文字列,_前文字列,_適合文字列,_後文字列) :-
        sub_atom(_文字列,_,_,_,_前文字列_1,_適合文字列_1,_後文字列_1,L1,[f,o,o,=|R2],L3),
        \+((last(L1,A),区切り文字(A))),
        \+((L2 = [B|_],区切り文字(B))),
        'テキストファイルの中に foo=bar という形式で設定値が列挙されています。foo= の右辺値のbarを抽出する'(_文字列,_前文字列_1,_適合文字列_1,_後文字列_1,_前文字列,_適合文字列,_後文字列).

'テキストファイルの中に foo=bar という形式で設定値が列挙されています。foo= の右辺値のbarを抽出する'(_文字列,_前文字列,_適合文字列,_後文字列,_前文字列,_適合文字列,_後文字列).
'テキストファイルの中に foo=bar という形式で設定値が列挙されています。foo= の右辺値のbarを抽出する'(_文字列,_前文字列_1,_適合文字列_1,_後文字列_1,_前文字列,_適合文字列,_後文字列) :-
        'テキストファイルの中に foo=bar という形式で設定値が列挙されています。foo= の右辺値のbarを抽出する'(_後文字列_1,_前文字列_2,_適合文字列,_後文字列),
        concat_atom([_前文字列_1,_適合文字列_1,_前文字列_2],_前文字列).

区切り文字(A) :-
        数字(A),!,
        fail.
区切り文字(A) :-
        アルファベット(A),!,
        fail.
区切り文字(A) :-
        全角文字(A),!,
        fail.
区切り文字(_).

数字(A) :-
        char_code(A,Code),
        Code >= 48,
        Code =< 57,!.

アルファベット(A) :-
        char_code(A,Code),
        Code >= 65,
        Code =< 90,!.
アルファベット(A) :-
        char_code(A,Code),
        Code >= 97,
        Code =< 122,!.

全角文字(A) :-
        char_code(A,Code),
        Code > 255,!.