2011-08-10 25 views
2

我需要根据数据中是否出现SSN编号来累积一些数据。我有一个字符串,我需要做的是搜索字符串,如内的数字模式:搜索字符串中的特定格式

###-##-#### 

我看着正则表达式一点,但我没有太多的时间来阅读深入它(我的公司本周需要该计划),而且在如此短的时间内似乎太复杂。我已经碰上了迄今:

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

但(它可以连接到它的地址出现的),我不知道这是否会过滤出来的字符串。

回答

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,有一套很好的例子。

如果你只是在你的问题中使用模式,它不会将其过滤掉。但是如果你用通配符围绕你的模式,那么它会。

希望这会有所帮助!

+0

完美的作品,谢谢! – MGZero

1

Like会从我只知道使用正则表达式的返回整个字符串(假设你比较"*###-##-####*"。除了。

这真的很简单,虽然,是模式简单一些呢?比如999-99 -9999如果是这样你的正则表达式为:?

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

现在你可以使用,这将提取该号码(如果找到匹配)的方法