繁体   English   中英

基于连字符分隔值的字符串模式的过滤器列表

[英]filter list based on string pattern of hyphen separated values

我有一个不同格式的字符串列表。 其中一些以连字符分隔的日期时间开头,后跟由 16 个字母组成的字符串。 我只想过滤符合这种格式的字符串。 我在下面提供了输入和输出示例。 我不是正则表达式专家,有人可以建议一种巧妙的方法来使用 python 吗?

输入:

example_list=['2022-05-05-16-59-25-5840ZQ37F231D95W',
'wereD/22fdas/',
'mnkljlj/124kljf/oaahreljah',
'2022-09-11-16-59-25-5840XY37F231D95Z']

output:

['2022-05-05-16-59-25-5840ZQ37F231D95W',
'2022-09-11-16-59-25-5840XY37F231D95Z']

更新:

将下面的建议与 re.match 和列表理解一起使用效果很好,谢谢!

import re

[x for x in example_list if re.match("^\d{4}(-\d\d){5}-[A-Z\d]{16}$",x)]

尝试这个:

^\d{4}(-\d\d){5}-[A-Z\d]{16}$

查看现场演示

正则表达式细分:

  • ^输入开始
  • \d{4} 4 位数字
  • (-\d\d){5} 5 个破折号,然后是 2 个数字
  • [AZ\d]{16} 16 个大写字母或数字
  • $输入结束

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM