регулярное выражение для соответствия 4 или более одинаковым символам

1

Мне нужны регулярные выражения, чтобы соответствовать приведенному ниже случаю.

4 или более последовательных одинаковых символа/числа; например 1111, aaaa, bbbb, 2222 и т.д.

Я попробовал этот шаблон

Pattern pattern = Pattern.compile("([a-z\\d])\\1\\1", Pattern.CASE_INSENSITIVE);

Но я обнаружил, что он соответствует только 3 или более одинаковым символам.

  1. Пожалуйста, дайте мне знать, какое изменение мне нужно, чтобы оно соответствовало 4 или более одинаковым символам.

  2. Также мне нужно проверить специальный символ "\". Пожалуйста, скажите мне, как мне нужно добавить в выражение соответствия шаблону... мне нужно указать как "\\"?

Теги:
pattern-matching

2 ответа

1

Возможно, вы сможете использовать {3}}.

"([a-z\\d])\\1{3,}"

вместо добавления \\1 несколько раз (не пробовал это в java).

  • 0
    Я думаю, что это будет ([az\\d])\\1{3,}
  • 0
    да, я думаю, что вы правы, исправят
1

Вам нужно добавить еще одну ссылку:

Pattern pattern = Pattern.compile("([a-z\\d])\\1\\1\\1", Pattern.CASE_INSENSITIVE);

В принципе, в скобках указывается соответствующая группа. Оттуда три обратных символа относятся к этой группе, что означает, что все четыре группы должны быть одинаковыми.

  • 0
    Можно ли сделать его короче в Java, как и в других языках, например (.)\1{3,} ?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню