Jump to content
Xtreme .Net Talk

Recommended Posts

Posted

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...

Posted

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.

Posted (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 by nbrege
Posted

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.

Posted

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...

Posted

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", ...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...