Splunk Search

Regex error

Puzzle2011
Engager

I am trying to validate that the user has entered their phone number in this format (555) 555-5555. I keep getting this error: Unmatched ) in regex; marked by <-- HERE in m/[([0-9]) <-- HERE ]+[[0-9]-]+[[0-9]+/ at validate.cgi line 46. My code is below. Any help?

sub validate_input {
my $valid = "Y";
my $errormsg;
if ($phone !~ m/[([0-9])]+[[0-9]-]+[[0-9]+/]) {
$valid = "N";
my $errormsg = "enter a valid phone number in format desired.";
}
return $valid, $errormsg;
}

Tags (2)
0 Karma
1 Solution

tpflicke
Path Finder

The characters ( and ) in regex are used for grouping so you need to escape them if you want to match literally.
You can also use \d for digit, I find it more readable than [0-9].
Try

m/\(\d\d\d\)\s*\d\d\d-\d\d\d\d/ 
m/\(\d{3}\)\s*\d{3}-\d{4}/
m/\(\d+\)\s*\d+-\d+/

depending on whether you want to exactly match the number of digits and preference of style.

View solution in original post

tpflicke
Path Finder

The characters ( and ) in regex are used for grouping so you need to escape them if you want to match literally.
You can also use \d for digit, I find it more readable than [0-9].
Try

m/\(\d\d\d\)\s*\d\d\d-\d\d\d\d/ 
m/\(\d{3}\)\s*\d{3}-\d{4}/
m/\(\d+\)\s*\d+-\d+/

depending on whether you want to exactly match the number of digits and preference of style.

Get Updates on the Splunk Community!

Announcing Scheduled Export GA for Dashboard Studio

We're excited to announce the general availability of Scheduled Export for Dashboard Studio. Starting in ...

Extending Observability Content to Splunk Cloud

Watch Now!   In this Extending Observability Content to Splunk Cloud Tech Talk, you'll see how to leverage ...

More Control Over Your Monitoring Costs with Archived Metrics GA in US-AWS!

What if there was a way you could keep all the metrics data you need while saving on storage costs?This is now ...