このディレクトリの索引

# 出典 :: Regular Expression(正規表現) Part11 #535 # "123,456,789"から","だけを削除して"123456789"にするにはどうすればいいの? # 前後が数字になっている","だけにマッチするのって正規表現だけでできるの? # "[0-9],[0-9]だと前後の数字にもマッチしちゃうよね。 '"123,456,789"から","だけを削除して"123456789"にするにはどうすればいいの? 前後が数字になっている","だけにマッチするのって正規表現だけでできるの? "[0-9],[0-9]だと前後の数字にもマッチしちゃうよね。'(_文字列,_カンマを削除した文字列) :- 文字列からアラビア数字に囲まれたカンマを削除する(_文字列,_カンマを削除した文字列). 文字列からアラビア数字に囲まれたカンマを削除する(_文字列,_カンマを削除した文字列) :- sub_atom(_文字列,_開始点,_検索語の長さ,_残り長さ,S1,',',S3,L1,L2,L3),!, 検索語の前後はアラビア数字である(_文字列,_開始点,_検索語の長さ), 文字列からアラビア数字に囲まれたカンマを削除する(S1,S3,_カンマを削除した文字列). 文字列からアラビア数字に囲まれたカンマを削除する(S1,S3,_カンマを削除した文字列) :- atomic_list_concat([S1,S3],_カンマを削除した文字列). 文字列からアラビア数字に囲まれたカンマを削除する(S1,S3,_カンマを削除した文字列) :- 文字列からアラビア数字に囲まれたカンマを削除する(S3,_カンマを削除した文字列_2), atomic_list_concat([S1,_カンマを削除した文字列_2],_カンマを削除した文字列). 検索語の前後はアラビア数字である(_文字列,_開始点,_検索語の長さ) :- 検索語の前はアラビア数字である(_文字列,_開始点), 検索語の後はアラビア数字である(_文字列,_開始点,_検索語の長さ). 検索語の前はアラビア数字である(_文字列,_開始点) :- _開始点_1 is _開始点 - 1, sub_atom(_文字列,_開始点_1,1,_,A), アラビア数字(A). 検索語の後はアラビア数字である(_文字列,_開始点,_検索語の長さ) :- _開始点_2 is _開始点 + _検索語の長さ, sub_atom(_文字列,_開始点_2,1,_,A), アラビア数字(A). アラビア数字('0'). アラビア数字('1'). アラビア数字('2'). アラビア数字('3'). アラビア数字('4'). アラビア数字('5'). アラビア数字('6'). アラビア数字('7'). アラビア数字('8'). アラビア数字('9'). sub_atom(A,S,L,R,H,X,T,HL,XL,TL) :- atom(A), sub_atom(A,S,L,R,X), sub_atom(A,0,S,_,H), N is S + L, sub_atom(A,N,R,_,T), atom_chars(H,HL), atom_chars(X,XL), atom_chars(T,TL). sub_atom(A,S,L,R,H,X,T,HL,XL,TL) :- var(A), atom_chars(H,HL), atom_chars(X,XL), atom_chars(T,TL), length(HL,S), length(XL,L), length(TL,R), concat_atom([H,X,T],A), sub_atom(A,S,L,R,H,X,T,HL,XL,TL).