1

我想搜索引号中的所有短语,然后复制它们。

在 Emacs 中,我的搜索如下所示:

M-x replace-regexp <RETURN> "*" <RETURN> $& $& <RETURN>

但它不起作用...

4

1 回答 1

5

"*"不匹配引号分隔的字符串;它匹配一行中任意(非零)数量的引号。

在正则表达式中,*是修饰符,而不是文件名模式中的通配符。它的意思是“匹配前一个模式的0个或多个”,"*"“0个或多个引号,后跟一个引号”也是如此——即一行中任意数量的引号。

“任何东西”的常用正则表达式.*匹配 0 个或多个“任何字符”( .)。但这将包括引号;".*"将从第一个引号到最后一个引号的所有内容匹配为一个大字符串。你想要的是"[^"]*",它匹配一个引号,后跟任意数量的非引号,然后是另一个引号。

此外,匹配的模式是\&,不是$&。这可能会更好:

M-x replace-regexp <RETURN> "[^"]*" <RETURN> \& \& <RETURN>
于 2012-11-06T02:46:14.000 回答