オーリー:
このデータには:
[‘23 2312 dfr tr 133’,
‘2344 fdeed’,
‘der3212fr342 96’]
私は、行の数のcertan数がある値を返す関数をしたいと思います。それは限り、行の特定の番号があるので、スペース、またはその他のテキストについては重要ではありません。(これ以上、劣らず)、例えば:
2 numbers in a row:
[‘23’,’’,’96’]
3 numbers in a row:
[‘133’,’’,’342’]
4 numbers in a row:
[‘2312’,’2344’,’3212’]
ありがとうございました
オリジナル:
一つの方法は、使用することができre.findall
、文字列からの連続した数字を抽出し、長さを有するものを維持するためにn
:
l = ['23 2312 dfr tr 133',
'2344 fdeed',
'der3212fr342 96']
import re
def length_n_digits(l,n):
return [s for i in l for s in
re.findall(rf'(?<!\d)\d{{{n}}}(?!\d)', i) or ['']]
二重の中括弧があることに注意してください'{{}}'
インナー括弧をエスケープするだけで、何の補間が行われません。(?<!\d)
そして、(?!\d)
前後参照して、一連のときにのみ一致することを確実にするためにあるn
数字は、他の数字に囲まれていません。
length_n_digits(l, 2)
# ['23', '', '96']
length_n_digits(l, 3)
# ['133', '', '342']
length_n_digits(l, 4)
# ['2312', '2344', '3212']