加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

如何在Python下实现截取标签之间的字符

发布时间:2023-06-13 11:02:32 所属栏目:语言 来源:
导读:今天这篇我们来学习和了解“怎样在Python下实现截取标签之间的字符”,下文的讲解详细,步骤过程清晰,对大家进一步学习和理解“怎样在Python下实现截取标签之间的字符”有一定的帮助。有这方面

今天这篇我们来学习和了解“怎样在Python下实现截取标签之间的字符”,下文的讲解详细,步骤过程清晰,对大家进一步学习和理解“怎样在Python下实现截取标签之间的字符”有一定的帮助。有这方面学习需要的朋友就继续往下看吧!

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

这篇关于“怎样在Python下实现截取标签之间的字符”的文章就介绍到这了,更多相关的内容,小编将为大家输出更多高质量的实用文章!

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!