有没有办法在 MS Word 文档中搜索模式?

cod*_*bie 35 regex microsoft-word

有没有办法在 MS Word 文档中查找模式而不是完全匹配?

我有一个文档,其中所有小数都被写入/而不是.. 例如,1.02已写成1/02,因为波斯字体使用/代替.小数点。

as/不仅用于小数,还有其他应用,例如分数,百分比等,有没有办法N/M在word文档中找到一个模式,其中N表示一个小数并M显示另一个小数?

nix*_*xda 45

单词

使用微软的正则表达式实现

CTRL+ H» 点击更多» 启用使用通配符

  • 找什么: ([0-9]{1,2})/([0-9]{2})
  • 用。。。来代替: \1.\2

在此处输入图片说明 在此处输入图片说明

这看起来像一个疯狂的搜索模式,所以让我们检查一下:

  • [0-9] 代表单个数值(0、1、2、3、4、5、6、7、8和9)

  • {1,2}用于计算前一个字符或表达式的出现次数。在我们的例子中,这意味着:只搜索一两个数字

    注意:如果您使用的是德语单词,则必须使用;作为分隔符而不是,

  • /没有特别的意义。它从字面上搜索斜线

  • ()圆括号很重要。他们将模式划分为逻辑序列,以便我们以后可以在替换模式中使用\1, \2... \n。这样我们就可以保存价值

在 Microsoft 的支持文章或Graham Mayor 的 Word 站点中逐条阅读“表达式”部分更多信息


VBA(更好的解决方案)

我建议您使用 VBA 方法,该方法更符合其他 RegEx 引擎的默认设置。他们有更好的记录,更多的人可以帮助你。

此宏要求使用 RegEx 模式在整个文档中搜索并将其替换为您给定的字符串。

ALT+F11打开 VBA 编辑器。将代码粘贴到任何地方并执行它F5

Sub RegexReplace()
    
    Dim RegEx As Object
    Set RegEx = CreateObject("VBScript.RegExp")    
    On Error Resume Next

    RegEx.Global = True
    RegEx.Pattern = InputBox("Find what:")
    ActiveDocument.Range = _ 
        RegEx.Replace(ActiveDocument.Range, InputBox("Replace with:"))        
    
End Sub
Run Code Online (Sandbox Code Playgroud)
  • 找什么: (?!\d)/(?=\d)
  • 用。。。来代替: .

在此处输入图片说明在此处输入图片说明


Cha*_*ark 13

像word文档中的'N/M',其中N表示一个十进制数,M也表示另一个十进制数

仅用于搜索,您可以将其^#/^#用作搜索参数。在更多选项下,找到 Special,还有一些其他选项可以提供帮助。

Nb: ^#, 是一位小数,所以如果你专门寻找 x/yy 那么它会是^#/^#^#等。

取代,

这是一个更好的选择,执行搜索([0-9])/([0-9])并替换为\1.\2,并启用“使用通配符”