Need help with regex

  • Thread starter Michael R. Pierotti
  • Start date
M

Michael R. Pierotti

Dim reg As New Regex("^\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}$")
Dim m As Match = reg.Match(txtIPAddress.Text)
If m.Success Then
'No need to do anything here
Else
MessageBox.Show("You need to enter a valid IP Address", "Error!",
MessageBoxButtons.OK, MessageBoxIcon.Hand)
txtIPAddress.Focus()
Return
End If




I need to match a IP addy on this and I would think this should match only a
x.x.x.x to xxx.xxx.xxx.xxx pattern yet it passes as a match when I input
192168121113

Any ideas what I am doing wrong here ?

Thanks,

Mike
 
J

Jay B. Harlow [MVP - Outlook]

Michael,
"." matches any character except \n. To match a period you need to "escape"
it with a slash. "\." will match a period.

Try the following:

Const pattern As String = "^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$"
Static reg As New Regex(pattern, RegexOptions.Compiled)
Dim m As Match = reg.Match(txtIPAddress.Text)
If m.Success Then
'No need to do anything here
Else
MessageBox.Show("You need to enter a valid IP Address",
"Error!", MessageBoxButtons.OK, MessageBoxIcon.Hand)
End If

Unless I need the Match object specifically, I normally use Regex.IsMatch
instead.

Something like:
Const pattern As String = "^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$"
Static reg As New Regex(pattern, RegexOptions.Compiled)
If reg.IsMatch(txtIPAddress.Text) Then
'No need to do anything here
Else
MessageBox.Show("You need to enter a valid IP Address",
"Error!", MessageBoxButtons.OK, MessageBoxIcon.Hand)
End If

Hope this helps
Jay
 
M

Michael R. Pierotti

Thank mate how did I miss that ? LOL

Jay B. Harlow said:
Michael,
"." matches any character except \n. To match a period you need to "escape"
it with a slash. "\." will match a period.

Try the following:

Const pattern As String = "^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$"
Static reg As New Regex(pattern, RegexOptions.Compiled)
Dim m As Match = reg.Match(txtIPAddress.Text)
If m.Success Then
'No need to do anything here
Else
MessageBox.Show("You need to enter a valid IP Address",
"Error!", MessageBoxButtons.OK, MessageBoxIcon.Hand)
End If

Unless I need the Match object specifically, I normally use Regex.IsMatch
instead.

Something like:
Const pattern As String = "^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$"
Static reg As New Regex(pattern, RegexOptions.Compiled)
If reg.IsMatch(txtIPAddress.Text) Then
'No need to do anything here
Else
MessageBox.Show("You need to enter a valid IP Address",
"Error!", MessageBoxButtons.OK, MessageBoxIcon.Hand)
End If

Hope this helps
Jay
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads

regex 3
Regex pattern match 1
Regex help needed 1
Help! Why my code can not write string to MDB ? 2
match a blank line with RegEx 5
help with regex? 4
Regex match help. match exactly 4 digit numbers 1
Regex help 2

Top