我有如下输入数据: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