re
Pythonを使用して、特定の回数繰り返される同じ文字または数字のセットを見つけよ うとしています。(.)
何が繰り返されるかを特定するのに問題なく機能しますが、異なる文字を繰り返さないようにする方法がわかりません。これが私が持っているものです:
re.search(r'(.){n}', str)
したがって、たとえば、 if9999
からは一致しますが、。の場合は一致しません。
ありがとう99997
n = 4
n = 3
どうですか
(?:^|(?<=(.)))(?!\1)(.)\2{n-1}(?!\2)
この意志:
(?:^|(?<=(.)))
:次のことを確認してください:
^
:文字列の先頭にいます(?<=(.))
:文字列の先頭にいないか。次に、試合前にキャラクターをキャプチャして、に保存します\1
(?!\1)(.)
:一致しない文字を一致させ\1
て保存します\2
\2{n-1}
\2
: n-1回一致(?!\2)
:\2
楽しみにしてマッチングできないことを確認してください(これn-1
は象徴的なものにすぎません。明らかに、これをn-1の実際の値に置き換えたいのであり、8-1
何かではありません)。
重要な編集:以前のバージョンの正規表現( )は、一致の背後にある(.)\1{n-1}(?!\1)
文字の一致を考慮できないため、機能しません。\1
上記の正規表現はこの問題を修正します。