除了序列的操作函数,比如len()来求字符串长度之外,Python还为字符串提供丰富到可以写个编辑器的API.
首先,下面的查找API都是为了查找位置,或者查一共有几次这样的操作。
如果只是想判断一个字符串是不是另一个字符串的子串的话,使用序列的in运算符就可以了。
例:
原型:str.count(sub[, start[, end]])
字符串的count函数可以数出来有多少次匹配,我们看个例子,有5个ha和3个hei
输出为5和2.
haha只能匹配两次。
再加上扩展参数:
find函数的行为是,如果能找到,则返回在序列中的坐标,如果找不到,则返回-1. rfind是从右向左查找。我们来看例子:
输出值为0和6.
找不到的例子:
输出值都是-1.
完整形式:
index和rindex的功能与find和rfind基本上一致,除了在找不到时会抛出ValueError异常而不是返回-1.
例:
所以我们需要加try...except语句来处理之:
有时候,我们希望做从头匹配或者匹配尾部。这时候就要用到startswith函数和endswith函数。例:
这两个返回值均为True.
如果需要更复杂的匹配,还是需要正则表达式。与Java等语言不同,Python中的正则表达式有专门的模块,字符串的API不负责这个事情。
字符串“ 我们是中国人 我爱我 的祖国 ”
1、查找空格数量
2、删除前后空格
3、删除所有空格
4、找到“祖国”的位置
5、判断字符串是否以“我们”开 头
str01=" 我们是中国人 我爱我 的祖国 "
print(str01.count(" "))#查找空格个数
print(str01.lstrip())#删除开头空格
print(str01.rstrip())#删除末尾空格
print(str01.replace(" ",""))#删除所有空格
print(str01.find("祖国"))
print(str01.find("我们",0,1))
右字符使用rfind()和rindex()方法可以找到特定字符的位置,然后可以使用切片操作查找左右字符:
str = 'Hello World'
# 找到字符o的位置
pos = str.rfind('o')
# 查找字符o左右字符
left_char = str[pos-1]
right_char = str[pos+1]
print(left_char,right_char)
# 输出:l d右字符
使用rfind()和rindex()方法可以找到特定字符的位置,然后可以使用切片操作查找左右字符:
str = 'Hello World'
# 找到字符o的位置
pos = str.rfind('o')
# 查找字符o左右字符
left_char = str[pos-1]
right_char = str[pos+1]
print(left_char,right_char)
# 输出:l d