猿问

在字符串中返回固定行(数字)?

在此数据中:


[‘23 2312 dfr tr 133’,

 ‘2344 fdeed’,

 ‘der3212fr342 96’]

我想要一个函数,它将返回一行中有一个证书数的数字的值。空格或其他文本无关紧要,只要一行中有一定的数字。(不多不少)例如:



2 numbers in a row:

[‘23’,’’,’96’]


3 numbers in a row:

[‘133’,’’,’342’]


4 numbers in a row:

[‘2312’,’2344’,’3212’]


谢谢


守着一只汪
浏览 71回答 1
1回答

qq_遁去的一_1

一种方法是使用&nbsp;re.findall&nbsp;从字符串中提取连续的数字,并保留那些长度为:nl = ['23 2312 dfr tr 133',&nbsp; &nbsp; &nbsp;'2344 fdeed',&nbsp; &nbsp; &nbsp;'der3212fr342 96']import redef length_n_digits(l,n):&nbsp; &nbsp; return [s for i in l for s in&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; re.findall(rf'(?<!\d)\d{{{n}}}(?!\d)', i) or ['']]请注意,双大括号只是为了转义内大括号,不会发生插值。 并要环顾四周,并确保仅当数字序列不被其他数字包围时才匹配。'{{}}'(?<!\d)(?!\d)nlength_n_digits(l, 2)# ['23', '', '96']length_n_digits(l, 3)# ['133', '', '342']length_n_digits(l, 4)# ['2312', '2344', '3212']
随时随地看视频慕课网APP

相关分类

Python
我要回答