python字符串匹配开头_对python 匹配字符串开头和结尾的方法详解

python字符串匹配开头_对python 匹配字符串开头和结尾的方法详解1、你需要通过指定的文本模式去检查字符串的开头或者结尾,比如文件名后缀,URLScheme等等。检查字符串开头或结尾的一个简单方法是使用str.startswith()或者是str.endswith()方法。比如:>>>filename=’spam.txt’>>>filename.endswith(‘.tx…

大家好,又见面了,我是你们的朋友全栈君。

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 “”, line 1, in

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)

>>>

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

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

以上这篇对python 匹配字符串开头和结尾的方法详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

时间: 2018-10-25

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/159991.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • eidos云矿机_空投挖矿

    eidos云矿机_空投挖矿eidos空投矿机虽然已经有几款网页版的了,甚至还有收费的,但并不适合长期运行,特别是需要挂在VPS里,所以就出现了这款控制台运行的,如果觉得对你有帮助就给个star吧。项目地址https://github.com/donjan-deng/eidos-miner环境需求nodejs>=10scatter>=11(网页版可在低版本运行)使用方法也有个简易的网页版…

    2022年9月30日
    2
  • 软件测试方法中黑盒测试法主要用于测试_黑盒测试一般由谁完成

    软件测试方法中黑盒测试法主要用于测试_黑盒测试一般由谁完成黑盒(又叫功能测试、数据驱动测试):1.黑盒测试发现错误类型:功能错误和遗漏界面错误数据库错误性能错误初始化和终止错误2.黑盒测试:程序外部接口进行的3.黑盒测试就是根据功能需求来设计测试用例,验证软件是否按照预期要求工作。4.黑盒测试技术主要有等价类划分法、边界值法、判定表法、因果图法、场景法等。5.等价类划分法测试技术是依据软件系统输入集合、输出集合或操作集合实现功能的相同性为依据,对其进行的…

    2022年10月3日
    2
  • Origin Pro2022教育版官方申请、安装及汉化、续期

    Origin Pro2022教育版官方申请、安装及汉化、续期OriginLab官网简介绝大多数学生都使用过Origin来绘图,并将这些图作为自己设计报告或者论文中的重要组成部分,这一点也是源于Origin在数据显示专业性。教育版有一些限制,比如序列号仅6个月有效期,窗口限制12个(窗口限制表示Origin项目中可访问的窗口数,包括所有类型的窗口-WorkBook,Matrix,Graph,Notes,Layout等总共限制为12个)。但是6个月后可重复文章步骤重新申请新的序列号与激活码(可以使用相同邮箱),且12个窗口可以在多数情况下能够满足需要。

    2022年5月18日
    154
  • 前端vue生成二维码带logo并且可以点击下载保存_vue实现扫描二维码

    前端vue生成二维码带logo并且可以点击下载保存_vue实现扫描二维码下载插件:npminstallvue-qr<template><divclass=”sg-qrcode”><vue-qr:text=”qrcodeText”:correctLevel=”3″:size=”250″:margin=”10″colorDark=”#000″colorLight=”white”backgroundColor=”w…

    2022年10月3日
    1
  • Qt编写安防视频监控系统(界面很漂亮)「建议收藏」

    Qt编写安防视频监控系统(界面很漂亮)「建议收藏」一、前言视频监控系统在整个安防领域,已经做到了烂大街的程序,全国起码几百家公司做过类似的系统,当然这一方面的需求量也是非常旺盛的,各种定制化的需求越来越多,尤其是这几年借着人脸识别的东风,发展更加迅猛,人脸识别相关的技术和应用这几年处于风口浪尖,衍生了特别多的应用产品,各种人脸识别的产品遍地开花,刷脸门禁,车站机场人脸识别,刷脸取票等,但是其实大部分内行人士可能都比较绝望,外行感觉像看科幻片一样…

    2022年7月25日
    29
  • 什么是作用域插槽?插槽与作用域插槽的区别

    什么是作用域插槽?插槽与作用域插槽的区别一、概念//有name的属于具名插槽,没有name属于匿名插槽<app><divslot="a">xxxx</div><div

    2022年8月3日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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