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