我需要根据数据中是否出现SSN号码来累积一些数据。我把它放在一个字符串中,我需要做的是在字符串中搜索数字模式,例如:
###-##-####
我看了一下正则表达式,但我没有太多时间深入阅读它(我的公司本周需要这个程序)并且在如此短的时间内看起来太复杂了。到目前为止我遇到的是:
If (rec.address1 Like "###-##-####")
但我不知道这是否会将其从字符串中过滤掉(它可能会附加一个地址)。
答案 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,有一套很好的例子。
如果您只是在问题中使用该模式,则不会将其过滤掉。但如果你用通配符包围你的模式,它就会。
希望这有帮助!