我想搜索引号中的所有短语,然后复制它们。
在 Emacs 中,我的搜索如下所示:
M-x replace-regexp <RETURN> "*" <RETURN> $& $& <RETURN>
但它不起作用...
"*"不匹配引号分隔的字符串;它匹配一行中任意(非零)数量的引号。
在正则表达式中,*是修饰符,而不是文件名模式中的通配符。它的意思是“匹配前一个模式的0个或多个”,"*"“0个或多个引号,后跟一个引号”也是如此——即一行中任意数量的引号。
“任何东西”的常用正则表达式.*匹配 0 个或多个“任何字符”( .)。但这将包括引号;".*"将从第一个引号到最后一个引号的所有内容匹配为一个大字符串。你想要的是"[^"]*",它匹配一个引号,后跟任意数量的非引号,然后是另一个引号。
此外,匹配的模式是\&,不是$&。这可能会更好:
M-x replace-regexp <RETURN> "[^"]*" <RETURN> \& \& <RETURN>