私はPython re
を使用して、同じ文字または数字のセットを特定の回数繰り返して検索しようとしています。 (.)
は何が繰り返されるかを特定するのには問題ありませんが、別の文字を繰り返すことを避ける方法はありません。ここで私が持っているものです。同じ文字を正規表現で正確に一致させる
re.search(r'(.){n}', str)
ので、例えばそれがn = 3
場合n = 4
場合99997
から9999
と一致しますが、ではないでしょう。
おかげ
私はPython re
を使用して、同じ文字または数字のセットを特定の回数繰り返して検索しようとしています。 (.)
は何が繰り返されるかを特定するのには問題ありませんが、別の文字を繰り返すことを避ける方法はありません。ここで私が持っているものです。同じ文字を正規表現で正確に一致させる
re.search(r'(.){n}', str)
ので、例えばそれがn = 3
場合n = 4
場合99997
から9999
と一致しますが、ではないでしょう。
おかげ
どの程度
(?:^|(?<=(.)))(?!\1)(.)\2{n-1}(?!\2)
これます:
(?:^|(?<=(.)))
:
^
::私たちは、文字列(?<=(.))
の先頭にあるいずれかのことを確認してください:私たちはthにいないe文字列の先頭。その後、試合前の文字をキャプチャし、\1
(?!\1)(.)
にそれを保存します。\1
ではない任意の文字に一致し、\2
\2{n-1}
にそれを保存します。一致\2
のn-1回(?!\2)
:ください\2
がお待ちしております。(n-1
は象徴的ですが、明らかにこれを8-1
などではなく、n-1の実際の値)。
重要編集:それは試合の後ろ\1
に一致する文字を説明するために失敗したので、正規表現の以前のバージョン((.)\1{n-1}(?!\1)
)は動作しません。上の正規表現はこの問題を解決します。
このウェブサイトはあなたの友人です:http://www.txt2re.com/index-php.php3 –
あなたはあなたが*一致させたいものと*一致させたくないものを明確にすることができますか?私は「別のキャラクターを繰り返すことからそれを保つ方法を見つけることができません」という意味を理解していません。 –
n回繰り返しているものと一致したいので、9回繰り返す場合は9999回、T回繰り返す場合はTTTTが必要ですが、私が言うと9897が必要です。{4} – cah