在Emacs Regexp中,我正在做一个替换正则表达式,正在搜索这个
<span class="small">\([^<]+\)</span>\([^<]+\)<span class="small">\([^<]+\)</span>
并尝试用此
替换它 <span class="small">\1\2</span>
我正在尝试连接两个匹配的字符串。我究竟做错了什么?
答案 0 :(得分:2)
如果没有说明它对您不起作用,我只能猜测您打算用\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
中的文字是你的意图吗?)