在 Microsoft Word 中使用正则表达式查找和替换

在 Microsoft Word 中使用正则表达式查找和替换

我读过常用表达已经。我的愿望是在 Word 中操作带引号的字符串(我有 2013 版本)。

我需要用括号替换引号字符。

例如:

“你好世界。”

应替换为

(你好世界。)

我尝试搜索"*"并替换\(*\)

但我尝试过但未能成功。

答案1

Microsoft Word 2007“查找和替换”帮助说,“当使用通配符复选框被选中时,Word 只会查找您指定的精确文本。”这个有点神秘的语句意味着

  • 搜索字母文本区分大小写(尽管你可以使用类似这样的搜索表达式实现不区分大小写[Hh][Ee][Ll][Ll][Oo]),
  • 直引号 ( ") 和弯引号 () 并不等价——搜索其中一个不会找到另一个,

…可能还有其他东西。

因此,如果您的文档使用直引号,请搜索"([!"]@)"。(Microsoft Word 通配符搜索表达式 - 即不是正则表达式——用于表示任何字符[!qx-z]其他qxyz,因为^用于其他事情(类似于\在真正的正则表达式中的作用),它们用来@表示前一个字符或表达式的一次或多次出现,因为*表示任何字符串,我猜他们认为为 分配特殊含义会让+ 不习惯真正正则表达式的用户感到困惑。)与扩展正则表达式一样,括号用于对子表达式进行分组。如果您的文档使用花引号,请搜索“([!“”]@)”。或者,如果两者都有,请搜索[“"]([!“"”]@)["”]。在任何一种情况下,都替换为(\1)\1指的是搜索表达式中第一个(也是唯一一个)括号分隔的组的内容,即引号之间的文本。有些令人困惑的是,这里的括号只是文字字符;所以这给你用括号替换引号的结果。

注意,由于@意味着或更多出现前一个字符或表达式(即,它像+在正则表达式中一样),这些指令将不会找到空字符串(即两个连续的引号字符,它们之间没有任何内容)。

相关内容