我读过常用表达已经。我的愿望是在 Word 中操作带引号的字符串(我有 2013 版本)。
我需要用括号替换引号字符。
例如:
“你好世界。”
应替换为
(你好世界。)
我尝试搜索"*"
并替换\(*\)
。
但我尝试过但未能成功。
答案1
这Microsoft Word 2007“查找和替换”帮助说,“当使用通配符复选框被选中时,Word 只会查找您指定的精确文本。”这个有点神秘的语句意味着
- 搜索字母文本区分大小写(尽管你可以使用类似这样的搜索表达式实现不区分大小写
[Hh][Ee][Ll][Ll][Oo]
), - 直引号 (
"
) 和弯引号 (“
和”
) 并不等价——搜索其中一个不会找到另一个,
…可能还有其他东西。
因此,如果您的文档使用直引号,请搜索"([!"]@)"
。(Microsoft Word 通配符搜索表达式 - 即不是正则表达式——用于表示任何字符[!qx-z]
其他比q
、x
、y
或z
,因为^
用于其他事情(类似于\
在真正的正则表达式中的作用),它们用来@
表示前一个字符或表达式的一次或多次出现,因为*
表示任何字符串,我猜他们认为为 分配特殊含义会让+
不习惯真正正则表达式的用户感到困惑。)与扩展正则表达式一样,括号用于对子表达式进行分组。如果您的文档使用花引号,请搜索“([!“”]@)”
。或者,如果两者都有,请搜索[“"]([!“"”]@)["”]
。在任何一种情况下,都替换为(\1)
。\1
指的是搜索表达式中第一个(也是唯一一个)括号分隔的组的内容,即引号之间的文本。有些令人困惑的是,这里的括号只是文字字符;所以这给你用括号替换引号的结果。
注意,由于@
意味着一或更多出现前一个字符或表达式(即,它像+
在正则表达式中一样),这些指令将不会找到空字符串(即两个连续的引号字符,它们之间没有任何内容)。