在 Word 文档中替换 . 的宏

在 Word 文档中替换 . 的宏

我有如下输入数据:the pixels are of 13.45 mm for the

宏之后的输出数据应该是这样的:

the pixels are of 13,45 mm for the在 Word 文档中。

我正在尝试下面的代码:

Sub RegexReplace1()

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

    RegEx.Global = True

    RegEx.Pattern = "([0-9]*).([0-9]*\s?mm)"

    ActiveDocument.Range = _
        RegEx.Replace(ActiveDocument.Range, ",")

End Sub

但它用

答案1

您需要使用它$1,$2作为替换字符串,而不仅仅是,在之前和之后插入捕获组。

RegEx.Replace(ActiveDocument.Range, "$1,$2")

此外,就像摩根所说的那样,您需要逃避.我还建议使用+而不是*,以确保您真正匹配测量值。

([0-9]+)\.([0-9]+\s?mm)

答案2

首先,由于您需要匹配.,因此您必须用 a 对其进行转义\(单个 a.表示“我想要匹配任何字符”):

([0-9]*)\.([0-9]*\s?mm)

然后,由于您需要替换.,因此您必须在其周围使用匹配的括号,而不是在数字周围使用匹配的括号:

[0-9]*(\.)[0-9]*\s?mm

相关内容