「行末の等号 ( =$
)とその直後の「改行文字」」を取得するための正規表現構文は何でしょうか?
次のような不適切な形式の (本当に壊れた) テキストがあります。
Tiens, encore du HTML, batard rouge, et un charact=C3=A8re accentu=C3=A9, P=
=C3=80F
(すべての行は=で終わります)だから、私がつかみたいのは文字通りです
"=
"
以下に貼り付けた関数で処理します。
しかし、行も結合したい、つまり改行を削除したいのですが、M-x regexp-builder
最後の "=" 記号との後に続く改行を強調表示することができないので、空の文字列 "" に置き換えることができますしたがって、行に参加します..?
(setq entities
'(("=C3=A9" "é")
("=C3=89" "É")
("=C3=A8" "è")
("=C3=88" "È")
("=C3=A7" "ç")
("=C3=87" "Ç")
("=C3=A0" "à")
("=C3=80" "À")
("=C3=B9" "ù")
("=C3=99" "Ù")
("=C3=AA" "ê")
("=C3=8A" "Ê")
("=C3=BB" "û")
("=C3=9B" "Û")
("=C3=AB" "ë")
("=C3=8B" "Ë")
("=C3=BC" "ü")
("=C3=9C" "Ü")
("=20" "")
("=3D\"" "=\"")
("=$" "")))
(defun px-decode-string (string entities)
"decode a string against a list of entities / chars pairs."
(setq i 0)
(while (< i (length entities))
(setq my-operand (format "%s" (car (car (nthcdr i entities)))))
(setq my-char (format "%s" (car (cdr (car (nthcdr i entities))))))
(setq string (replace-regexp-in-string my-operand my-char string 't))
(setq i (1+ i))
)
(format "%s" string))
(alist は であり、テストのみを目的としたものではsetq
ありません)defvar
テスト:
(px-decode-string "Tiens, encore du HTML, batard rouge, et un charact=C3=A8re accentu=C3=A9, P=
=C3=80F!
" entities)