nbrege Posted February 28, 2006 Posted February 28, 2006 I have never used regular expressions before so please excuse my stupidity. I just need to check for strings that matches a particular pattern, in this case, a "J" followed by six digits. ie. "Jxxxxxx" Here is the psuedo code: If testString = "Jxxxxxx" Then 'do some stuff End If Can someone show me how to code this in VB2005express? I searched through the forums but couldn't find any examples. Thanks... Quote
mskeel Posted February 28, 2006 Posted February 28, 2006 I think it would be something like (shooting from the hip): If Regex.IsMatch(testString, "J[0-9]{6}") Then 'Do stuff End If J[0-9]{6} says that the string must start with J, then have 6 digits after that but I don't care what the digits are. I think you might be able to swap the 0-9 for a /d as well, but I don't remember off the top of my head. Remember you'll need to import the System.Text.RegularExpression namespace at the top of the file. Quote
nbrege Posted February 28, 2006 Author Posted February 28, 2006 (edited) Thanks, it worked! Heres another one for you ... suppose I want to match all strings that either start with "J" followed by 6 digits (ie. "Jxxxxx") or just start with 6 digits (ie. "xxxxxx")? The leading "J" may or may not be present. Can I do that with one regex? Thanks... Edited February 28, 2006 by nbrege Quote
mskeel Posted February 28, 2006 Posted February 28, 2006 Of course! :D Using the 0 or 1 operator, ?, you get "J?[0-9]{6}". So, that says you want a string with either 0 or 1 J's followed by exactly 6 digits. I highly reccomend you get a regex tool to help you out with this stuff. Little tools like some of the ones listed here are extremely helpful. There are also a couple of links to information in general about Regex. Quote
nbrege Posted March 1, 2006 Author Posted March 1, 2006 Thanks yet again. One last question for you ... is it possible to specify two completely different patterns in the same regex? Is there some sort of OR operator I can use? I will check out some of the tools you suggested so I don't have to keep bugging you about this... Quote
mskeel Posted March 1, 2006 Posted March 1, 2006 I merely suggest a helper tool so you don't have to wait for replies and can do more advanced stuff easily on your own. :) The or operator, '|', is exactly what you need. So something like "(choo)|J?[0-9]{6}" would give you a string that is either "choo" or 6 digits possibly preceded by a J. Valid strings for this regex => "J123456", "123456", "choo", ... Invalid strings for this regex => "j123456", "J123", "cho", "12Cho", "Choo", "duh", "J12345", ... Quote
nbrege Posted March 2, 2006 Author Posted March 2, 2006 Thank you ... you have been a great help. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.