为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

守着一只汪 2022-09-27 16:36:29
在此数据中:[‘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’]谢谢
查看完整描述

1 回答

?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

一种方法是使用 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']




查看完整回答
反对 回复 2022-09-27
  • 1 回答
  • 0 关注
  • 70 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信