python startswith正则表达式_python – 在列表中通过正则表达式过滤字符串

selected_files = filter(regex.match, files)

re.match('regex')等于re.search(‘^ regex’)或text.startswith(‘regex’)但是正则表达式版本.它只检查字符串是否以正则表达式开头.

所以,使用re.search()代替:

import re

files = [ '/a/b/c/la_seg_x005_y003.png',

'/a/b/c/la_seg_x005_y003.npy',

'/a/b/c/la_seg_x004_y003.png',

'/a/b/c/la_seg_x004_y003.npy',

'/a/b/c/la_seg_x003_y003.png',

'/a/b/c/la_seg_x003_y003.npy', ]

regex = re.compile(r'_x\d+_y\d+\.npy')

selected_files = list(filter(regex.search, files))

# The list call is only required in Python 3, since filter was changed to return a generator

print(selected_files)

输出:

['/a/b/c/la_seg_x005_y003.npy',

'/a/b/c/la_seg_x004_y003.npy',

'/a/b/c/la_seg_x003_y003.npy']

如果您只想获取所有.npy文件,只需使用str.endswith():

files = [ '/a/b/c/la_seg_x005_y003.png',

'/a/b/c/la_seg_x005_y003.npy',

'/a/b/c/la_seg_x004_y003.png',

'/a/b/c/la_seg_x004_y003.npy',

'/a/b/c/la_seg_x003_y003.png',

'/a/b/c/la_seg_x003_y003.npy', ]

selected_files = list(filter(lambda x: x.endswith('.npy'), files))

print(selected_files)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
startswith函数是Python字符串的一个方法,用于判断一个字符串是否以指定的前缀开始。这个方法比较简单,只需要提供一个前缀作为参数,它会返回一个布尔值,表示字符串是否以该前缀开始。 正则则是指正则表达式,是一种用来匹配文本的字符串模式。正则表达式可以用于在字符串搜索、匹配和替换特定的字符序列。 在Python,startswith函数不支持正则表达式,它只能用于简单地判断一个字符串是否以指定前缀开始。如果想要使用正则表达式来判断一个字符串是否符合某种模式,可以使用re模块。 re模块是Python用于正则表达式的标准库。它提供了一系列的函数和方法,用于处理字符串的匹配、搜索和替换。其,re模块的match方法可以用来判断一个字符串是否符合某个正则表达式的模式。 要使用re模块进行匹配,首先需要导入re模块。然后,可以使用re模块的match方法传入一个正则表达式和一个待匹配的字符串,它会返回一个匹配对象。如果匹配成功,则返回匹配对象;如果匹配失败,则返回None。可以通过判断返回值是否为None来确定字符串是否符合正则表达式的模式。 总结起来,startswith函数用于判断字符串是否以指定的前缀开始,不支持正则表达式。要使用正则表达式进行匹配判断,可以使用re模块的match方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值