Python的字符串切片及常用方法

Python022

Python的字符串切片及常用方法,第1张

获取Python字符串中的某字符可以使用索引

截取字符串中的一段字符串可以使用切片,切片在方括号中使用冒号:来分隔需要截取的首尾字符串的索引,方式是包括开头,不包括结尾

当尾索引没有给出时,默认截取到字符串的末尾

当头索引没有给出的时候默认从字符串开头开始截取

当尾索引和头索引都没有给出的时候,默认返回整个字符串,不过这只是一个浅拷贝

当尾索引大于总的字符串长度时,默认只截取到字符串末尾,很明显使用这种方法来截取一段到字符串末尾的子字符串是非常不明智的,应该是不给出尾索引才是最佳实践

当头索引为负数时,则是指从字符串的尾部开始计数,最末尾的字符记为-1,以此类推,因此此时应该注意尾索引的值,尾索引同样可以为负数,如果尾索引的值指明的字符串位置小于或等于头索引,此时返回的就是空字符串

切片是Python中截取字符串最强大的功能。

以下列举部分Python字符串常用的方法:

在日常项目中,我们经常会使用python从字符串中提取我们想要的信息,以下是各种提取信息方法的总结。

格式: str[beg:end:step]

描述: 字符串[开始索引:结束索引:步长]切取字符串为开始索引到结束索引-1内的字符串步长不指定时步长为1

举例:

print(str[::2]) //::这里表示整个字符串,每两个位置提取一个

print(str[1:3]) //提取第2个到第3个

print(str[2::]) //截取2 - 末尾的字符

本小节介绍了,处理字符串经常用到的一些函数方法。

语法: str.find(str, beg=0, end=len(string))

描述: Python find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1。

语法: str.split(str="", num=string.count(str)).

描述: Python split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串.返回分割后的字符串列表,该方法可以讲字符串转化为列表处理。

另外的: str.splitlines([keepends])按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。

语法: str.partition(str)

描述: partition() 方法用来根据指定的分隔符将字符串进行分割。如果字符串包含指定的分隔符,则返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。

语法: str.replace(old, new, max)

描述: Python replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。

语法: str.strip([chars])

描述: Python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。

语法: str.join(sequence)

描述: Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。

上述方法还有其变形,如str.rfind(),这代表从字符串右边开始处理,正常是从左边开始处理。下表是其它常用的python字符串自带函数方法。

正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。本小节主要介绍Python中常用的正则表达式处理函数和正则表达式的书写规则。

re 模块使 Python 语言拥有全部的正则表达式功能。所以在python中使用正则表达式处理函数需要import re

语法: re.search(pattern, string, flags=0)

描述: re.search 扫描整个字符串并返回第一个成功的匹配。匹配成功re.search方法返回一个匹配的对象,否则返回None。

语法: re.sub(pattern, repl, string, count=0, flags=0)

描述: Python 的 re 模块提供了re.sub用于替换字符串中的匹配项。

语法: pattern.findall(string, pos, endpos)

描述: 在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。注意: match 和 search 是匹配一次 findall 匹配所有。

模式字符串使用特殊的语法来表示一个正则表达式: