文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python 如何截取字符函数

2024-04-02 19:55

关注

如何截取字符函数

在工作中我们经常会遇到某种情况需要截取字符串中某个特定标签之间的内容(爬虫可能用到的较多),适用于很多情况例如字符串形式的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]

对各个部分的说明:

【实例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/

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯