gpt4 book ai didi

regex - VBA 正则表达式 - 抢时间 HH :MM from String

转载 作者:行者123 更新时间:2023-12-03 02:34:39 28 4
gpt4 key购买 nike

给定一个任意字符串,我想从该字符串中获取一个小时(HH:MM)。

这是我的正则表达式:

^                   # Start of string
(?: # Try to match...
(?: # Try to match...
([01]?\d|2[0-3]): # HH:
)? # (optionally).
([0-5]?\d): # MM: (required)
)? # (entire group optional, so either HH:MM:, MM: or nothing)
$ # End of string

我的代码:

Public Sub RegexTest()

Dim oRegex As Object
Dim time_match As Object

Set oRegex = CreateObject("vbscript.regexp")
With oRegex
.Global = True
.Pattern = "^(?:(?:([01]?\d|2[0-3]):)?([0-5]?\d):)$" 'HH:MM
End With


Dim s As String: s = "START TIME: Mar. 3rd 2016 12:00am"

Set time_match = oRegex.Execute(s)
If time_match.Count = 1 Then
Debug.Print time_match.Matches(0)
Else

End If


End Sub

但是我无法在这里匹配并且没有得到输出。

最佳答案

您的 ^(?:(?:([01]?\d|2[0-3]):)?([0-5]?\d):)$ 模式仅匹配以可选 HH: 部分开头的完整字符串,以及强制 MM 部分,后跟强制 : 部分。

我建议

(?:[01]?\d|2[0-3]):[0-5]\d

因为您正在匹配字符串的部分

参见regex demo

关于regex - VBA 正则表达式 - 抢时间 HH :MM from String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39084319/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com