mapcar で perform-string を使って文字列置換しようと思ってかなりハマったのでメモって置きます。
ダメな例
(mapcar '(lambda (s)
(goto-char (point-min))
(perform-replace s "" nil t t nil))
'("foo[0-9]" "bar[0-9]"))これだと “foo1 bar2” は削除できるけど “bar2” と 2 個めの検索要素だけしかないときに削除できない
良い例
(mapcar '(lambda (s)
(goto-char (point-min))
(perform-replace s "" nil t t t))
'("foo[0-9]" "bar[0-9]"))perform-replaceの最後の引数NOERRORをtに設定しておけば該当する文字列がなくてもスムーズに次に進んでくれます。