Emacs regexp连接行,同时获取换行符

Emacs regexp连接行,同时获取换行符,regex,emacs,Regex,Emacs,什么是regexp语法来获取“一行末尾的等号(=$),加上紧跟其后的“换行符” 我的文本格式很差(实际上已经损坏),如下所示: Tiens, encore du HTML, batard rouge, et un charact=C3=A8re accentu=C3=A9, P= =C3=80F (每一行都以=)所以我想抓住的是字面意思 "= " 我用下面粘贴的函数处理它 但是我也想加入行,也就是删除换行符,但是我不能让M-x regexp builder突出显示最后一个“=”符号和后面的换

什么是regexp语法来获取“一行末尾的等号(
=$
),加上紧跟其后的“换行符”

我的文本格式很差(实际上已经损坏),如下所示:

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))

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

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


以交互方式,例如
query replace regexp
,使用C-q C-j.

为什么不使用query replace regexp?我不确定我是否理解你的疑问…我看到你试图将一个法语文本转换成另一个编码。为什么不使用emacs的编码接口?或者我可能不明白你想做什么…不是“相反”。“$”是单独返回的车厢。“\n”是回车加换行符。否。“相反”是正确的。“$”是锚匹配器,与回车无关。你自己试试吧!对我的意思是,如果将字符串“$”中的regexp替换为“”,回车符仍然存在。如果您使用“\n”,它将消失。
(px-decode-string "Tiens, encore du HTML, batard rouge, et un charact=C3=A8re accentu=C3=A9, P=
=C3=80F!
" entities)