我有数百个字符串,其形式为
""Foo, Baz" <foobaz>@fizz.com>"
我正在尝试使用Query-replace-regexp
用
"""Foo, Baz"" <foobaz@fizz.com>"
到目前为止,我有一个模式"\"\"[A-Z]+, [A-Z]+\""
,但这与任何事情都不匹配。我无法在""
或"
上进行简单的查找/替换,因为它会导致过多的错误点击。我错过了什么,怎样才能创建符合我规定模式的正则表达式?
答案 0 :(得分:1)
匹配失败,因为您在搜索字符串中放置了大写字母。来自http://www.gnu.org/software/emacs/manual/html_node/emacs/Search-Case.html:
Emacs中的搜索通常会忽略它们的文本大小写 搜索,如果您指定小写文本。因此,如果你 指定搜索'foo',然后'Foo'和'foo'也匹配。正则表达式, 特别是字符集,表现同样:'[ab]'匹配'a' 或'A'或'b'或'B'。
增量搜索字符串中任意位置的大写字母 搜索区分大小写。因此,搜索'Foo'找不到 'foo'或'FOO'。这适用于正则表达式搜索以及 字符串搜索。如果删除大写,效果将停止 搜索字符串中的字母。
假设变量case-fold-search设置为t
(默认值),那么如果您使用此搜索文本:
""[a-z]+, [a-z]+"
和替换文字:
"\&"
然后query-replace-regexp
会将此转换为:
""Foo, Baz" <foobaz>@fizz.com>"
到此:
"""Foo, Baz"" <foobaz>@fizz.com>"