在字符串中搜索特定格式

时间:2011-08-10 16:23:04

标签: vb.net string string-formatting

我需要根据数据中是否出现SSN号码来累积一些数据。我把它放在一个字符串中,我需要做的是在字符串中搜索数字模式,例如:

###-##-####

我看了一下正则表达式,但我没有太多时间深入阅读它(我的公司本周需要这个程序)并且在如此短的时间内看起来太复杂了。到目前为止我遇到的是:

If (rec.address1 Like "###-##-####")

但我不知道这是否会将其从字符串中过滤掉(它可能会附加一个地址)。

2 个答案:

答案 0 :(得分:1)

Like将返回整个字符串(假设您正在与"*###-##-####*"进行比较。除此之外,我只知道使用正则表达式。

这很简单,模式只是一个数字?如999-99-9999?如果是这样,你的正则表达式将是:

\d\d\d-\d\d-\d\d\d\d

您现在可以使用将提取此数字的方法(如果找到匹配项)。

答案 1 :(得分:1)

如果您正在使用Like,请尝试此模式(带有一些示例):

Dim pattern as string = "*###-##-####*"

Console.WriteLine("Dave111-22-3333H" Like pattern)      'True
Console.WriteLine("111-22-3333H" Like pattern)          'True
Console.WriteLine("Dave111-22-3333" Like pattern)       'True
Console.WriteLine("Dave111-2DDD2-3333H" Like pattern)   'False
Console.WriteLine("333111-22-3333" Like pattern)        'True
Console.WriteLine("D111-22-33331231223" Like pattern)   'True

*是一个通配符。这是一个link,有一套很好的例子。

如果您只是在问题中使用该模式,则不会将其过滤掉。但如果你用通配符包围你的模式,它就会。

希望这有帮助!