Python 如何截取字符函数
作者:ajklsdnal 发布时间:2023-02-08 11:39:04
如何截取字符函数
在工作中我们经常会遇到某种情况需要截取字符串中某个特定标签之间的内容(爬虫可能用到的较多),适用于很多情况例如字符串形式的xml报文、json格式的字符串以及其它类型的字符串。
因为我总结了有关字符串截取的两个函数来记录一下,以供参考。
# 方法一:简单截取不重复标签中的内容
def substr(mystr, startStr, endChar):
'''
自定义字符串截取函数:只从字符串中第一次遇见的内容
'''
startStr_len = len(startStr)
start_index = mystr.index(startStr)
end_index = mystr.index(endChar)
return mystr[start_index+startStr_len:end_index]
'''
a = 'abc111bcd abc222bcd'
result = substr(a, 'abc', 'bcd') # result='111'
'''
# 方法二:重复截取标签中的内容并将结果作为列表返回
def substr_to_list(mystr, startStr, endChar):
'''自定义字符串截取函数'''
result = []
position = 0
while True: # 因为index()函数如果没有找到想要的内容会报异常ValueError
try:
startStr_len = len(startStr)
endChar_len = len(endChar)
start_index = mystr.index(startStr, position)
end_index = mystr.index(endChar, position)
position = end_index + endChar_len
result.append(mystr[start_index+startStr_len:end_index])
except Exception as e:
break
return result
'''
a = 'abc111bcd abc222bcd'
result = substr(a, 'abc', 'bcd') # result=['111','222']
'''
效率方面就没有考虑啦,毕竟都用python了还考虑什么效率,哈哈!
截取字符串(字符串切片)
字符串
从本质上讲,字符串是由多个字符构成的,字符之间是有顺序的,这个顺序号就称为索引(index)。Python 允许通过索引来操作字符串中的单个或者多个字符,比如获取指定索引处的字符,返回指定字符的索引值等。
获取单个字符
知道字符串名字以后,在方括号[ ]中使用索引即可访问对应的字符,具体的语法格式为:
strname[index]
strname
表示字符串名字,index 表示索引值。
Python 允许从字符串的两端使用索引:
当以字符串的左端(字符串的开头)为起点时,索引是从 0 开始计数的;字符串的第一个字符的索引为 0,第二个字符的索引为 1,第三个字符串的索引为 2 ……
当以字符串的右端(字符串的末尾)为起点时,索引是从 -1 开始计数的;字符串的倒数第一个字符的索引为 -1,倒数第二个字符的索引为 -2,倒数第三个字符的索引为 -3 ……
请看下面的实例演示:
url = 'http://c.biancheng.net/python/'
#获取索引为10的字符
print(url[10])
#获取索引为 6 的字符
print(url[-6])
运行结果:
i
y
获取多个字符(字符串截去/字符串切片)
使用[ ]除了可以获取单个字符外,还可以指定一个范围来获取多个字符,也就是一个子串或者片段,具体格式为:
strname[start : end : step]
对各个部分的说明:
strname
:要截取的字符串;start
:表示要截取的第一个字符所在的索引(截取时包含该字符)。如果不指定,默认为 0,也就是从字符串的开头截取;end
:表示要截取的最后一个字符所在的索引(截取时不包含该字符)。如果不指定,默认为字符串的长度;step
:指的是从 start 索引处的字符开始,每 step 个距离获取一个字符,直至 end 索引出的字符。step 默认值为 1,当省略该值时,最后一个冒号也可以省略。
【实例1】基本用法:
url = 'http://c.biancheng.net/java/'
#获取索引从7处到22(不包含22)的子串
print(url[7: 22]) # 输出 zy
#获取索引从7处到-6的子串
print(url[7: -6]) # 输出 zyit.org is very
#获取索引从-21到6的子串
print(url[-21: -6])
#从索引3开始,每隔4个字符取出一个字符,直到索引22为止
print(url[3: 22: 4])
运行结果:
c.biancheng.net
c.biancheng.net
c.biancheng.net
pcaen
【实例2】高级用法,start、end、step 三个参数都可以省略:
url = 'http://c.biancheng.net/java/'
#获取从索引5开始,直到末尾的子串
print(url[7: ])
#获取从索引-21开始,直到末尾的子串
print(url[-21: ])
#从开头截取字符串,直到索引22为止
print(url[: 22])
#每隔3个字符取出一个字符
print(url[:: 3])
运行结果:
c.biancheng.net/java/
c.biancheng.net/java/
http://c.biancheng.net
hp/bne.ta/
来源:https://blog.csdn.net/ajklsdnal/article/details/108057925


猜你喜欢
- K近邻法是有监督学习方法,原理很简单,假设我们有一堆分好类的样本数据,分好类表示每个样本都一个对应的已知类标签,当来一个测试样本要我们判断它
- 1.什么是SQL语句sql语言:结构化的查询语言。(Structured Query Language),是关系数据库管理系统的标准语言。它
- juypter notebook中直接使用log_device_placement=True打印不出来device信息# Creates a
- 前言pymssql模块是用于sql server数据库(一种数据库通用接口标准)的连接。另外pyodbc不仅限于SQL server,还包括
- python用terminal输入参数import argparseif __name__ == '__main__':pa
- 打开CMD命令 执行:sqlcmd/? 这是sqlcmd命令的一些帮助信息 通过上面可以知道怎么连数据库了 执行:sqlcmd -S 服务器
- 本文实例讲述了python迭代器常见用法。分享给大家供大家参考,具体如下:迭代器迭代是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置
- 下面介绍在Linux上利用python获取本机ip的方法.经过网上调查, 发现大致有两种方法, 一种是调用shell脚本,另一种是利用pyt
- 地图 API Map() 构造器实例创建一个 Google 地图:<html><head><scriptsrc
- 如下所示:jsonObject 是个jsonif (key in jsonObject) : print '有'else:
- 在做网络训练实验时,有时需要同时将训练曲线和测试曲线一起显示,便于观察网络训练效果。经过很多次踩坑后,终于解决了。具体的方法是:设置两个wr
- 前言今天在使用 8.0.12 版的 mysql 驱动时遇到了各种各样的坑,在使用 JDBC 连接上遇到的问题可以参考我的上一篇博客。我在使用
- 给出列表切片的格式:[开头元素::步长] # 输出直到最后一个元素,(最后一个冒号和步长可以省略,下同)[开头元素:结尾元素(不含):步长]
- 众所周知,Jupyter notebook是一个交互式的Python shell,也就是IPython的封装版,非常适合用来进行数据分析和机
- 目录精确调整工作表的行高和列宽批量更改多个工作簿的数据格式批量更改工作簿的外观格式设置字体格式修改字体为宋体修改字号字体加粗字体颜色单元格填
- 前言本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。闲来无事听听歌,听
- 目录1,刚开始(可能会很low)2.单行消失3.优化后的单行消失总结1,刚开始(可能会很low)import timescale=10pri
- 在编写代码时我们有时候会碰到需要自己解析四则运算表达式的情况,本文简单的介绍使用JavaScript实现对简单四则运算表达式的解析。一、熟悉
- 前言SQL Server 是数据库软件中比较常见且实用的软件,它的集成度很高,且功能非常强大。很多类型的网站系统后台数据库都依赖于SQL S
- cron是什么cron的意思就是:计划任务,说白了就是定时任务。我和系统约个时间,你在几点几分几秒或者每隔几分钟跑一个任务(job),就那么