fork download
  1. <?php
  2.  
  3. $reg = '/^[-а-яё0-9_]+$|^[-0-9a-z_]+$/ui';
  4. $ar = [
  5. "Дубай",
  6. "дубай",
  7. "ДУБАЙ",
  8. "1ДУБАЙ",
  9. "ДУБАЙ1",
  10. "_ДУБАЙ",
  11. "ДУБ_АЙ",
  12. "-ДУБАЙ",
  13. "ДУБ-АЙ",
  14. "ДУБАЙ-",
  15. "Well",
  16. "well",
  17. "WELL",
  18. "1WELL",
  19. "WELL1",
  20. "_WELL",
  21. "WE_LL",
  22. "-WELL",
  23. "WE-LL",
  24. "WELL-",
  25. "WELL#",
  26. "WEL%L-",
  27. "WE^LL-",
  28. "WE|LL-",
  29. "ЦWELL-",
  30. "цWELL-",
  31. "цWELL",
  32. "цWELL",
  33. "WE LL",
  34. "Я WELL",
  35. ];
  36. $cnt = 0;
  37. foreach ($ar as $item) {
  38. $result = preg_match($reg,$item);
  39.  
  40. if( $result===1 ) {
  41. echo "match $item", PHP_EOL;
  42. ++$cnt;
  43. }else
  44. echo "not match $item", PHP_EOL;
  45.  
  46. }
  47. echo $cnt.'/'.count($ar);
Success #stdin #stdout 0s 82944KB
stdin
Standard input is empty
stdout
match Дубай
match дубай
match ДУБАЙ
match 1ДУБАЙ
match ДУБАЙ1
match _ДУБАЙ
match ДУБ_АЙ
match -ДУБАЙ
match ДУБ-АЙ
match ДУБАЙ-
match Well
match well
match WELL
match 1WELL
match WELL1
match _WELL
match WE_LL
match -WELL
match WE-LL
match WELL-
not match WELL#
not match WEL%L-
not match WE^LL-
not match WE|LL-
not match ЦWELL-
not match цWELL-
not match цWELL
not match цWELL
not match WE LL
not match Я WELL
20/30