怎样在Python下实现截取标签之间的字符
Admin 2022-12-22 群英技术资讯 298 次浏览
在工作中我们经常会遇到某种情况需要截取字符串中某个特定标签之间的内容(爬虫可能用到的较多),适用于很多情况例如字符串形式的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 允许从字符串的两端使用索引:
请看下面的实例演示:
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/
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
PyEcharts是一个用于生成 Echarts图表的类库, Python是一门富有表达力的语言,很适合用于数据处理,下面这篇文章主要给大家介绍了关于Python pyecharts数据可视化的相关资料,需要的朋友可以参考下
这篇文章主要介绍了python中的断言(assert语句),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
这篇文章主要为大家详细介绍了python实现简单贪吃蛇小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
这篇文章介绍了Python的三类主要模块,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
loc和iloc都是pandas工具中定位某一行的函数,下面这篇文章主要给大家介绍了关于Python学习之.iloc与.loc的区别、联系和用法的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008