在 Emacs 正则表达式中,我正在做一个替换正则表达式,搜索这个
<span class="small">\([^<]+\)</span>\([^<]+\)<span class="small">\([^<]+\)</span>
并试图用这个替换它
<span class="small">\1\2</span>
我正在尝试连接两个匹配的字符串。我究竟做错了什么?
如果没有说明它对您不起作用,我只能猜测您打算替换为\1\3
而不是\1\2
.
第二种可能性是您正在操作的文本实际上与您的正则表达式不匹配。
(switch-to-buffer (get-buffer-create "nst.html"))
(insert "<span class=\"small\">foo</span>bar<span class=\"small\">baz</span>")
(goto-char (point-min))
(replace-regexp
"<span class=\"small\">\\([^<]+\\)</span>\\([^<]+\\)<span class=\"small\">\\([^<]+\\)</span>"
"<span class=\"small\">\\1\\3</span>")
尝试M-x undo
在缓冲区中查看替换操作之前的样子。
(我想丢失文本\2
是你的意图吗?)