/ / Jak znaleźć unikalną grupę powtarzalną w regex - regex

Jak znaleźć unikalną powtarzającą grupę w regex - regex

Moje wyrażenie regularne = "(d+)1+" Moim celem jest uchwycenie powtarzających się wzorów, takich jak 2323, 1212, 345345, które mają różne cyfry. Obecne wyrażenie regularne przechwytuje również 11 222,11111, które muszę wykluczyć

Przykład - Dla danych wejściowych = 44556841335158684945454545 Mecze są 44 55 45454545 Mecze powinny być - 45454545

Jak napisać regex, który wyklucza 44 i 55 i daje wyniki, które mają różne cyfry

Odpowiedzi:

0 dla odpowiedzi № 1

Aby powiedzieć „powtarzane dwie różne liczby”, możesz spróbować

((d)(?!2)d)1

Nawiasy przechwytujące są ponumerowane od lewej; więc 1 dopasowuje całą zewnętrzną parę nawiasów i (?!2) odnosi się do wewnętrznych nawiasów wokół pierwszej cyfry, ograniczając drugą cyfrę, aby nie mogła być identyczna z pierwszą cyfrą.

Próbny: https://regex101.com/r/5f2CEf/1

Oczywiście dodaj + na koniec, aby pokryć wszystkie sąsiadujące powtórzenia meczu.


1 dla odpowiedzi nr 2

Oto regex, który moim zdaniem chcesz:

(d)((?!1)d)

Trochę wyjaśnienia:

(d)

d dopasowuje cyfrę (równą [0-9])

((?!1)d)

Negatywne spojrzenie w przyszłość (?!1)

Upewnij się, że poniższy Regex nie pasuje

1

dopasowuje ten sam tekst, co ostatnio dopasowany przez pierwszą grupę przechwytującą

d

dopasowuje cyfrę (równą [0-9])

Oto szybkie demo JS:

var s = "44556841335158684945454545"
console.log(s.match(/(d)((?!1)d)/g))