3 или более последовательных последовательных символа / числа ex-123, abc, 789, pqr и т. д.
blockquote>Невозможно с регулярными выражениями.
3 или более последовательных идентичных символа / числа ex - 111, aaa, bbb. 222 и т. Д.
blockquote>Используйте шаблон из
(?i)(?:([a-z0-9])\\1{2,})*
.Если вы хотите проверить всю строку, используйте
Matcher.matches()
. Чтобы найти совпадения в строке, используйтеMatcher.find()
.Вот пример кода:
final String ps = "(?i)(?:([a-z0-9])\\1{2,})*"; final String psLong = "(?i)\t\t\t# Case insensitive flag\n" + "(?:\t\t\t\t# Begin non-capturing group\n" + " (\t\t\t\t# Begin capturing group\n" + " [a-z0-9]\t\t# Match an alpha or digit character\n" + " )\t\t\t\t# End capturing group\n" + " \\1\t\t\t\t# Back-reference first capturing group\n" + " {2,}\t\t\t# Match previous atom 2 or more times\n" + ")\t\t\t\t# End non-capturing group\n" + "*\t\t\t\t# Match previous atom zero or more characters\n"; System.out.println("***** PATTERN *****\n" + ps + "\n" + psLong + "\n"); final Pattern p = Pattern.compile(ps); for (final String s : new String[] {"aa", "11", "aaa", "111", "aaaaaaaaa", "111111111", "aaa111bbb222ccc333", "aaaaaa111111bbb222"}) { final Matcher m = p.matcher(s); if (m.matches()) { System.out.println("Success: " + s); } else { System.out.println("Fail: " + s); } }
И вывод:
***** PATTERN ***** (?i)(?:([a-z0-9])\1{2,})* (?i) # Case insensitive flag (?: # Begin non-capturing group ( # Begin capturing group [a-z0-9] # Match an alpha or digit character ) # End capturing group \1 # Back-reference first capturing group {2,} # Match previous atom 2 or more times ) # End non-capturing group * # Match previous atom zero or more characters Fail: aa Fail: 11 Success: aaa Success: 111 Success: aaaaaaaaa Success: 111111111 Success: aaa111bbb222ccc333 Success: aaaaaa111111bbb222
Я уже решил это. Причиной проблемы было то, что в файле конфигурации config/app.php
не было строки <?php
при запуске, и именно это вызвало проблему.