【发布时间】:2013-02-21 17:37:19
【问题描述】:
我在 Excel 2012 中使用 VBA 将单元格中的内容与正则表达式匹配,但它不起作用。
我正在运行以下代码:
Dim r1 As New RegExp
r1.Pattern = "(.)(\s+)?((?:[a-z][a-z]+))(\s+)(\d+)?"
r1.IgnoreCase = True
For i = 1 To 5
If r1.Test(Sheet3.Cells.Item(i, 5)) = True Then
MsgBox ("MATCH: " & Sheet3.Cells.Item(i, 5))
Else
MsgBox ("NOT MATCH: " & Sheet3.Cells.Item(i, 5))
End If
Next i
所以它应该匹配字符串:“A Person 01” 但不匹配:“A Person abc 01”
但它匹配两者,因为可以在字符串的后半部分找到表达式。 你如何让它只匹配整个字符串? 所以只有当单元格的全部内容是:单个字母、空格、单词、空格、数字时才匹配
非常感谢任何帮助!
【问题讨论】: