Emacs regexp连接线,也抓取换行符

时间:2012-08-04 00:29:57

标签: regex emacs

要抓取的正则表达式语法是什么?#34;行末尾的等号(=$),"换行符"紧接着它"?

我的格式很糟糕(真的破了)这样的文字:

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)

2 个答案:

答案 0 :(得分:3)

在字符串文字中,您可以使用“\ n”而不是“$”来匹配换行符。

互动,例如query-replace-regexp,使用 C-q C-j

答案 1 :(得分:0)

好的,没关系,我找到了它:=\n