我试图用VBA在Excel中捕获超过2个连续点。我正在使用以下正则表达式:"(\.{2,})"
如果我在这里尝试它似乎是正确的:https://regex101.com/
但是Excel给了我不一致的结果。
“”返回FALSE - >正确
“..”返回TRUE - >正确
“...”返回FALSE - >不正确
“......。”返回FALSE - >不正确
“...... ..”返回TRUE - >正确
(就在我复制粘贴在这里时,似乎Excel以某种方式将3个点合并为1)
试试这样,它对我来说非常好用:
Option Explicit
Public Function TryRegex(s As String) As Boolean
Dim regEx As Object
Dim inputMatches As Object
Dim regExString As String
Set regEx = CreateObject("VBScript.RegExp")
With regEx
.Pattern = "(\.{2,})"
.IgnoreCase = True
.Global = True
Set inputMatches = .Execute(s)
TryRegex = regEx.test(s)
End With
End Function
Public Sub TestMe()
Debug.Print TryRegex(".") 'False
Debug.Print TryRegex("..") 'True
Debug.Print TryRegex("...") 'True
Debug.Print TryRegex("....") 'True
Debug.Print TryRegex(".I.live.in.submarine.") 'False
Debug.Print TryRegex(".a.yellow.one..") 'True
End Sub
代码使用后期绑定,因此您无需引用任何其他库。