我有一个csv文件,其中包含带引号的字符串中的逗号,例如
1,2, “34123”,4
我正在尝试使用Replace Regexp替换带引号的字符串中的逗号 ( “[^”,] +),([^ “] +”) 同 $ 1 $ 2
然而,emacs返回0次发现。有什么想法吗?
由于 鲍勃
答案 0 :(得分:1)
这就是你想要的:
(while (re-search-forward "\"[^\",]+\\(,\\)[^\"]+\"")
(replace-match "" nil nil nil 1))
您真的需要阅读有关replace-regexp
的文档,以及有关Emacs Lisp中的regexp的文档。
尝试以非交互方式使用replace-regexp
来执行引用匹配部分的替换,这是禁忌。您希望使用重复匹配文本的循环,然后调用replace-match
来替换它或部分文本。
首先研究Elisp如何表示正则表达式。然后了解replace-match
用于引用匹配部分的特殊语法 - 它不是$1
等。