Emacs:如何复制正则表达式匹配?

Mas*_*ash 4 regex emacs

我只是尝试使用正则表达式在缓冲区中搜索/突出显示文本并复制它.我不想要整条线,只需要比赛.有任何想法吗?

我有大量的文本行包含标签"[12345] [09876]",我想要正则表达式复制所有标签.

例如

Lorem ipsum dolor sit amet, consectetuer adipiscing elit [12345][09876], 
sed diam nonummy [12345][123456] nibh euismod tincidunt ut laoreet dolore 
magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud [54321][09876] 
exerci tation ullamcorper suscipit lobortis nisl ut aliquip [23451][09656]
Run Code Online (Sandbox Code Playgroud)

Ole*_*liv 6

是的,增量搜索不会移动点位置,所以做yank不会复制匹配.

最简单的解决方案可能如下.

定义复制搜索匹配的功能:

(defun copy-isearch-match ()
    (interactive)
    (copy-region-as-kill isearch-other-end (point)))
Run Code Online (Sandbox Code Playgroud)

并将其添加到搜索模式映射中

(define-key isearch-mode-map (kbd "M-w") 'copy-isearch-match)
Run Code Online (Sandbox Code Playgroud)

然后M-x isearch-forward-regexp你可以按M-w下来复制比赛.