python 匹配字符串开头和结尾

python 匹配字符串开头和结尾python匹配字符串开头和结尾

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

1.你需要通过指定的文本模式去检查字符串的开头或者结尾,比如文件名后缀,URL Scheme 等等。检 查 字 符 串 开 头 或 结 尾 的 一 个 简 单 方 法 是 使 用str.startswith() 或 者 是str.endswith()方法。比如:

>>> filename = 'spam.txt'
>>> filename.endswith('.txt')
True
>>> filename.startswith('file:')
False
>>> url = 'http://www.python.org'
>>> url.startswith('http:')
True
>>> 



2.如果你想检查多种匹配可能,只需要将所有的匹配项放入到一个元组中去,然后传给 startswith()或者 endswith() 方法:

>>> import os
>>> filenames = os.listdir('.')
>>> filenames
[ 'Makefile', 'foo.c', 'bar.py', 'spam.c', 'spam.h' ]
>>> [name for name in filenames if name.endswith(('.c', '.h')) ]
['foo.c', 'spam.c', 'spam.h'
>>> any(name.endswith('.py') for name in filenames)
True
>>>

#示例2
from urllib.request import urlopen
def read_data(name):
  if name.startswith(('http:', 'https:', 'ftp:')):
    return urlopen(name).read()
  else:
    with open(name) as f:
      return f.read() 

奇怪的是,这个方法中必须要输入一个元组作为参数。如果你恰巧有一个list 或者 set类型的选择项,要确保传递参数前先调用 tuple()将其转换为元组类型。比如:

>>> choices = ['http:', 'ftp:']
>>> url = 'http://www.python.org'
>>> url.startswith(choices)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: startswith first arg must be str or a tuple of str, not list
>>> url.startswith(tuple(choices))
True
>>>

3.startswith() endswith() 方法提供了一个非常方便的方式去做字符串开头和结尾的检查。类似的操作也可以使用切片来实现,但是代码看起来没有那么优雅。比如:

>>> filename = 'spam.txt'
>>> filename[-4:] == '.txt'
True
>>> url = 'http://www.python.org'
>>> url[:5] == 'http:' or url[:6] == 'https:' or url[:4] == 'ftp:'
True
>>>

4.你可以能还想使用正则表达式去实现,比如:

>>> import re
>>> url = 'http://www.python.org'
>>> re.match('http:jhttps:jftp:', url)
<_sre.SRE_Match object at 0x101253098>
>>>

5.当和其他操作比如普通数据聚合相结合的时候 startswith()endswith() 方法是很不错的。比如,下面这个语句检查某个文件夹中是否存在指定的文件类型:

if any(name.endswith(('.c', '.h')) for name in listdir(dirname)):
...







版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/159984.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Java list转set;JDK8 下list 集合转Set 集合

    Java list转set;JDK8 下list 集合转Set 集合**List集合转Set集合**List集合和Set集合的区别在说如何List集合转Set集合之前我们先回顾一下List集合和Set集合的区别。他们之间比较细致的区别有蛮多的,不过比较粗糙地来说List和Set之间的区别有以下那么几点(1)llist和…

  • 焦点科技怎么老是招人_合肥新站区工业数字化转型怎么申报_合肥昊邦信息科技…

    焦点科技怎么老是招人_合肥新站区工业数字化转型怎么申报_合肥昊邦信息科技…首页>新闻中心发布时间:2020-11-1310:50:51 导读:合肥昊邦信息科技为您提供合肥新站区工业数字化转型怎么申报的相关知识与详情:BlueData的软件提供了一种基于容器的方法,用于在裸机,云或混合平台上启动和管理Hadoop,Spark和其他环境。注意已经正式删除了,且很多API都已经并入Keras中,所以整个代码有一种浓厚的Keras风格。我强烈建议已…

  • 【python】hasattr( )的用法

    【python】hasattr( )的用法hasattr()函数用于判断对象是否包含对应的属性。hasattr(object,name)object–对象。name–字符串,属性名。return如果对象有该属性返回True,否则返回False。实例classvariable:x=1y=’a’z=Truedd=variable()print(hasa…

    2022年10月22日
  • Python学习路线(2022修正版)

    Python学习路线(2022修正版)经历长达近一个月的资源筛选过程终于结束,总共1.5T的资源经过:去重、筛选、整理、归档之后一份粗略的Python学习曲线资源已经成型,虽然中间经历了很多坎坷,不过最终还是完成,猪哥也是第一时间与大家分享出来。资料主要分为两部分:一、各个学习网站论坛等,二、百度云资料。网站论坛资源更新快,可以与大家互动;而百度云资源主要为视频,方便大家下载和在线观看,两种资源结合使用,学习和查找知识更方便!一、…

  • android错误之MediaPlayer用法的Media Player called in state *「建议收藏」

    用到Media Player,遇到几个问题,记一下用法就不说了,使用的时候最好参考一下mediaPlayer的这张图第一个错误是Media Player called in state 8这个是因为在调用start之前没有prepare,因为我是用了mediaPlayer = MediaPlayer.create(context, R.raw.notice);去初始化的播放器,这个接口说明只要成功

  • 项目总结(1.TOF相机及标定相关)

    项目总结(1.TOF相机及标定相关)1.TOF相机简介:TOF是Timeofflight的简写,直译为飞行时间的意思。所谓飞行时间法3D成像,是通过给目标连续发送光脉冲,然后利用传感器接收从物体返回的光,通过探测光脉冲的飞行时间来得到目标物的距离。TOF的深度精度不随距离改变而变化,基本能稳定在cm级。2.TOF相机缺点:测量距离较常规测量仪器短,一般不超过10米测量结果…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号