Страницы

Поиск по вопросам

понедельник, 4 февраля 2019 г.

Регулярное выражение. Поиск повторяющихся цифр

Есть вот такая строка:
---011110000-----
Нужно найти 3 повторяющиеся цифры если нет 4-ёх повторяющихся цифр.
Например:
---011110000----- не должно быть совпадений ---01110000------ должно совпасть только с 111 -----0111000----- должно совпасть и с 000 и с 111
Помогите составить регулярку для JavaScript.
P.S. ((?=(\d{1}))\2{3}) это выражение даст совпадение в каждом примере...


Ответ

А как на счёт двух регулярок?
'---011110000-----'.replace(/(\d)\1{3}/g,'-').match(/(\d)\1{2}/g) → null
'---011110000-----'.replace(/(\d)\1{3}/g,'-').match(/(\d)\1{2}/g) → ["111"]
'-----0111000-----'.replace(/(\d)\1{3}/g,'-').match(/(\d)\1{2}/g) → ["111", "000"]
С одной регуляркой удалось только захватить символ, после которого идёт тройка:
'---011110000-----'.match(/(.)(?=(\d)\2{2}(?!\2))(?!\1)/g) → null
'---01110000------'.match(/(.)(?=(\d)\2{2}(?!\2))(?!\1)/g) → ["0"]
'-----0111000-----'.match(/(.)(?=(\d)\2{2}(?!\2))(?!\1)/g) → ["0", "1"]

Комментариев нет:

Отправить комментарий