\d part checks for zero or one occurrence of a digit.
So here I think the second question mark right before the digt is checking for digit and not the parenthesis.
Thus a phone number such as: 44 8984 1234 (UK) is also perfectly valid if written 0044 8984 1234 which this regexp (and on other answers as well) does not support. The following regex is based on ITU-T E.164 and Annex to ITU Operational Bulletin No. While it could be shortened a bit, I decided to include each code independently. For other countries, replace the international access code (the 011 at the beginning of the regex) with whatever is appropriate for that country's dialing plan.
I am not quite sure if the last one is correct for the dotted check. ]* #Allow certain non numeric characters that may appear between the Exchange number and the Subscriber number.
While you are correct that the regex cannot determine this, each outbound attempt consumes time and resources. where C is the 1–3 digit country code, N is up to 14 digits, and E is the (optional) extension.Just because a problem has already been solved doesn't mean one should give up on the learning opportunity it presents. Working on a solution first teaches more than simply Googling for it. (]* #Allow certain non numeric characters that may appear between the Country Code and the Area Code. Lesson 1: An Introduction, and the ABCs Lesson 1½: The 123s Lesson 2: The Dot Lesson 3: Matching specific characters Lesson 4: Excluding specific characters Lesson 5: Character ranges Lesson 6: Catching some zzz's Lesson 7: Mr. Kleene Lesson 8: Characters optional Lesson 9: All this whitespace Lesson 10: Starting and ending Lesson 11: Match groups Lesson 12: Nested groups Lesson 13: More group work Lesson 14: It's all conditional Lesson 15: Other special characters Lesson X: Infinity and beyond! Problem 1: Matching a decimal numbers Problem 2: Matching phone numbers Problem 3: Matching emails Problem 4: Matching HTML Problem 5: Matching specific filenames Problem 6: Trimming whitespace from start and end of line Problem 7: Extracting information from a log file Problem 8: Parsing and extracting data from a URL Problem X: Infinity and beyond! Below are a few phone numbers that you might encounter when using real data, write a single regular expressions that matches the number and captures the proper area code.