fork download
  1. import java.util.*;
  2. import java.lang.*;
  3. import java.io.*;
  4. import java.util.regex.*;
  5.  
  6. class Ideone
  7. {
  8. public static void main (String[] args) throws java.lang.Exception
  9. {
  10. Pattern pattern = Pattern.compile("^\\s*(?:\\+?(\\d{1,3}))?[-. (]*(\\d{3})[-. )]*(\\d{3})[-. ]*(\\d{4})(?: ?x(\\d+))?\\s*$");
  11. String s;
  12. while ((s = in.readLine()) != null && s.length() != 0) {
  13. System.out.print("'" + s + "'\t");
  14. if (pattern.matcher(s).find()) {
  15. System.out.println("MATCHES");
  16. } else {
  17. System.out.println("DOES NOT MATCH");
  18. }
  19. }
  20. }
  21. }
Success #stdin #stdout 0.1s 320512KB
stdin
18005551234
1 800 555 1234
+1 800 555-1234
+86 800 555 1234
1-800-555-1234
1 (800) 555-1234
(800)555-1234
(800) 555-1234
(800)5551234
800-555-1234
800.555.1234
800 555 1234x5678
8005551234 x5678
1 800 555-1234
1----800----555-1234
stdout
'18005551234'	MATCHES
'1 800 555 1234'	MATCHES
'+1 800 555-1234'	MATCHES
'+86 800 555 1234'	MATCHES
'1-800-555-1234'	MATCHES
'1 (800) 555-1234'	MATCHES
'(800)555-1234'	MATCHES
'(800) 555-1234'	MATCHES
'(800)5551234'	MATCHES
'800-555-1234'	MATCHES
'800.555.1234'	MATCHES
'800 555 1234x5678'	MATCHES
'8005551234 x5678'	MATCHES
'1 800 555-1234'	MATCHES
'1----800----555-1234'	MATCHES