在VB中需要正则表达式模式

时间:2013-03-21 13:31:15

标签: regex vb.net qtp

我是新手,VB中 10:26 AM 的正则​​表达式模式是什么,而不是时间,需要固定时间模式。请帮忙。

2 个答案:

答案 0 :(得分:3)

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

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

"10: 26 AM"

说真的,就是这样。它是一个有效的正则表达式,与您的字符串完全匹配,没有别的。 然而,如果您只是要匹配一个固定的字符串,根本不需要使用正则表达式,并且使用正常的字符串搜索可能会稍快一些(但不一定是案件!)。 VBScript has the InStr function为此:

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

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

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

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

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

(但我们再一次允许文本在空格之前和之后。如果不允许,可能要删除它。)

答案 1 :(得分:2)

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

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

Fyi,结肠后有空格......