Emacs regexp连接行,同时获取换行符
什么是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突出显示最后一个“=”符号和后面的换
=$
),加上紧跟其后的“换行符”
我的文本格式很差(实际上已经损坏),如下所示:
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)