数字をn回繰り返し:Pythonの正規表現検索:これは、繰り返しの数字の一致を返さない理由を私は理解していない
import re
digits = '122223456789'
re.search(r'(\d)\4', digits)
を代わりに、私は「エラー:4位の無効なグループリファレンス」を取得します
数字をn回繰り返し:Pythonの正規表現検索:これは、繰り返しの数字の一致を返さない理由を私は理解していない
import re
digits = '122223456789'
re.search(r'(\d)\4', digits)
を代わりに、私は「エラー:4位の無効なグループリファレンス」を取得します
\4
はpython-regexエンジンのグループ参照です。繰り返しを指定する場合は、{}
を使用してください。
re.search(r'(\d){4}', digits)
それとも、(\ d)の最初のキャプチャグループであるので、あなたは\1
でそれを参照する必要が4桁繰り返しにマッチします。
re.search(r'(\d)\1{3}', digits)
デモ:
In [5]: re.search(r'(\d)\1{3}', digits).group(0)
Out[5]: '2222'
あなたは、特定のグループにマッチした文字列の結果を得るためにsearch()
機能のgroup()
属性にグループ番号を渡すことができます。または、一致したもの全体を得るには0を渡すだけです。
ありがとうございます。私は '(\ d)\ number'の' \ number'はグループ固有の繰り返しパターンの数と一致する方法だと考えました。しかし、それはperl変数のようなものです。 –
'(\ d)\ 1 +'を意味しましたか? –
're.search(r '((\ d)\ 2+)'、数字).group(1)'不明な回数の繰り返し。 'r '\ d {4}'と指定します。 – dawg