Mam ciąg znaków - na przykład "Hello Worrld". Zauważ, że litera "r" powtarza się dwa razy.Wyrażenie regularne z wyprzedzeniem - Identyfikacja powtarzających się kolejnych liter
Chciałbym zidentyfikować litery, które występują kolejno (dwa lub więcej razy) i zachować tylko jeden z nich. To znaczy, chciałbym otrzymać "Hello World" z jednym "r".
Golang nie ma wyrażeń regularnych z uprzedzeniem.
Próbowałem za pomocą następującego wyrażenia regularnego w celu identyfikacji listów, które powtarzają się kolejno -
r := regexp.Compile(`(.)\1`)
Ale wybiera zarówno wystąpień liter - chciałbym tylko jeden z nich, które zostaną wybrane.
Będziesz także chcą 'Hello' stać' Helo' , dobrze? Wyrażenie powinno mieć postać '(.) \ 1 +', aby uchwycić 'wooorrrrrrld'. – dasblinkenlight
O tak. Poprawny. Oczekiwanie polega na zidentyfikowaniu wszystkich liter, które powtarzają się kolejno i zachowują tylko jedną z nich. – callmekatootie
Nie znam biblioteki regex w go, więc nie mam pojęcia, jak to zrobić, ale powinien istnieć sposób na odzyskanie pierwszej grupy przechwytującej, która odpowiada kropce w nawiasach. Całe wyrażenie, które w wielu implementacjach regex odpowiada zeru grupy, będzie pasować do wszystkich identycznych liter, ale pierwsza grupa przechwytująca będzie tylko pierwszą literą. – dasblinkenlight