Regex 101のクイズを試しています
タスク 6 での質問は、
大野!昨夜、友達が私のキーボードにビールをこぼしてしまったようで、私のキーは今とてもベタベタしています。キーを押すと、2 つの重複が発生することがあります。p pp l ll ea aa se eeこの問題を解決するのを手伝ってくれませんか? 太字のコンテンツは削除する必要があります。
私はこの正規表現を試しました
([a-z])(\1{2})
しかし、解決には至りませんでした。
そのウェブサイトのなぞなぞの解決策は次のとおりです。
/(.)\1{2}/g
キーボードのどのキーもスタックする可能性があるため、 を使用する必要があります.
。
\1
正規表現では、最初のキャプチャ グループが一致するものは何でも一致することを意味します(.)
。
交換は$1
または\1
です。
残りの正規表現は正しいですが、不要なキャプチャ グループがあるだけです。
正確に 3 文字に一致させたい場合、正規表現は正しいです。少なくとも 3 つを一致させたい場合は、
([a-z])(\1{2,})
また
([a-z])(\1\1+)
最初の発生以外は何もキャプチャする必要がないため、これらはわずかに優れています。
([a-z])\1{2} # your original regex (exactly three occurences)
([a-z])\1{2,}
([a-z])\1\1+
ここで、置換は文字の 1 つの出現のみであり、それ以上のものではない必要があります。
\1
交換:
(.)\1+
と:
\1
もちろん、これには、正規表現エンジンが後方参照をサポートしている必要があります...また、交換部品では、正規表現エンジンによると、\1
と書く必要がある場合があります$1
。
私はそれを行い(\w)(\1+)?
ますが、指定されたサイト内で「削除」する方法がわかりません...
最善の方法は、2 番目の一致の結果を空の文字列に置き換えることです