4

Regex 101のクイズを試しています

タスク 6 での質問は、

大野!昨夜、友達が私のキーボードにビールをこぼしてしまったようで、私のキーは今とてもベタベタしています。キーを押すと、2 つの重複が発生することがあります。p pp l ll ea aa se eeこの問題を解決するのを手伝ってくれませんか? 太字のコンテンツは削除する必要があります。

私はこの正規表現を試しました

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

しかし、解決には至りませんでした。

4

4 に答える 4

7

そのウェブサイトのなぞなぞの解決策は次のとおりです。

/(.)\1{2}/g

キーボードのどのキーもスタックする可能性があるため、 を使用する必要があります.

\1正規表現では、最初のキャプチャ グループが一致するものは何でも一致することを意味します(.)

交換は$1または\1です。

残りの正規表現は正しいですが、不要なキャプチャ グループがあるだけです。

于 2012-12-29T15:33:16.947 に答える
3

正確に 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
于 2012-12-29T15:38:39.690 に答える
1

交換:

(.)\1+

と:

\1

もちろん、これには、正規表現エンジンが後方参照をサポートしている必要があります...また、交換部品では、正規表現エンジンによると、\1と書く必要がある場合があります$1

于 2012-12-29T15:41:24.230 に答える
0

私はそれを行い(\w)(\1+)?ますが、指定されたサイト内で「削除」する方法がわかりません...

最善の方法は、2 番目の一致の結果を空の文字列に置き換えることです

于 2012-12-29T15:39:33.057 に答える