Есть вот такая строка:
---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"]
Комментариев нет:
Отправить комментарий