-5

我对此很陌生,VB 中 10:26 AM的正则表达式模式是什么,不是最新的,需要固定时间的模式。请帮助解决这个问题。

4

2 回答 2

3

所有字符串也是有效的正则表达式(一旦您转义了在您使用的正则表达式方言中具有特殊含义的任何字符)。因此,如果您想使用正则表达式搜索固定字符串,只需使用该固定字符串即可。

特别是,您的固定时间输入不包含任何特殊字符,因此我们甚至不需要对其进行转义:

"10: 26 AM"

说真的,就是这样。这是一个与您的字符串完全匹配的有效正则表达式,仅此而已。但是,如果您只是要匹配一个固定的字符串,则根本不需要使用正则表达式,并且使用普通的字符串搜索可能会稍微快一些(但不一定是这种情况!)。VBScript 有这样的InStr功能

str = "I came home at 10: 26 AM and made lunch."
position = InStr("10: 26 AM", str)

也许您想忽略输入中的空格(或允许它们出现在任意位置)。在这种情况下,您可以\s*在相关位置插入 - 这将匹配该位置的任意数量的空格(零个或多个)。您修改后的表达式如下所示:

"10\s*:\s*26\s*AM"

最后,也许您想确保文本不包含任何其他内容,而只包含 time。在这种情况下,您可以使用 begin ( ^) 和 end ( $) 锚来确保仅在字符串周围没有其他文本时才匹配该字符串:

"^\s*10\s*:\s*26\s*AM\s*$"

(但我们再次允许文本前后有空格。如果不允许,您可能需要删除它。)

于 2013-03-21T13:41:59.933 回答
2

要匹配给定的时间格式(上午 10:26),您可以使用:

(0?[1-9]|1[012])(: [0-5]\d) (AM|PM)

仅供参考,它在冒号后有空格......

于 2013-03-21T13:34:57.827 回答