我在emacs中使用regexp替换将第一项和第三项的双引号替换为单引号。输入:
"term1" "term2" "term3" "term4"
(术语分隔符是标签)
想要输出:
'term1' "term2" 'term3' "term4"
我使用了下面的regexp搜索和替换字符串:
搜索:"\(.+?\)" "\(.+?\)" "\(.+?\)"
替换:'\1' "\2" '\3'
然而,实际输出取代了第一个和第四个术语而是:
'term1' "term2" "term3" 'term4'
我的正则表达式中有错误吗?
答案 0 :(得分:2)
Elisp regexps很贪婪,所以我希望你的第一组实际上匹配整行,而不只是"term
“。请尝试这样做:
"\([^"]+?\)" "\([^"]+?\)" "\([^"]+?\)"