/ / odstrániť opakovaný znak medzi slovami - regex

odstrániť opakovaný znak medzi slovami - regex

Skúšam test z Regex 101

V úlohe 6 je otázkou

Ale nie! Zdá sa, že moji priatelia minulú noc rozliali pivo po celej mojej klávesnici a moje klávesy sú teraz veľmi lepivé. Niekedy, keď stlačím kláves, dostanem dva duplikáty. Môžete sppllleaaasaee pomôžte mi to vyriešiť? Obsah tučným písmom by sa mal odstrániť.

skúsil som tento regex

([a-z])(1{2})

Ale nedokázalo to nájsť riešenie.

odpovede:

2 pre odpoveď č. 1

Riešenie hádanky na tejto webovej stránke je:

/(.)1{2}/g

Keďže sa ktorýkoľvek kláves na klávesnici môže zaseknúť, musíme ho použiť ..

1 v regulárnom znamená zhodu bez ohľadu na to 1prvá skupina (.) zápasy.

Výmena je $1 alebo 1.

Zvyšok vášho regexu je správny, len to, že existujú zbytočné skupiny na zachytenie.


3 pre odpoveď č. 2

Váš regulárny výraz je správny, ak sa chcete presne zhodovať s tromi znakmi. Ak chcete zápas aspoň tri, to je

([a-z])(1{2,})

alebo

([a-z])(11+)

Keďže nemusíte zachytávať nič okrem prvého výskytu, sú o niečo lepšie:

([a-z])1{2}   # your original regex (exactly three occurences)
([a-z])1{2,}
([a-z])11+

Teraz by nahradenie malo byť presne jedným výskytom postavy a nič viac:

1

1 pre odpoveď č. 3

nahradiť:

(.)1+

s:

1

To samozrejme vyžaduje, aby váš regulárny motor nahradil spätné odkazy ... Tiež v náhradnej časti a podľa regulárnych motorov, 1 môže byť napísané ako $1.


0 pre odpoveď č. 4

Ja to robím (w)(1+)? ale nedokážem zistiť, ako „odstrániť“ na danom webe ...

Najlepším spôsobom by bolo nahradiť výsledky zápasového zápasu prázdnymi reťazcami