find方法可以确定从左开始第一次出现某个字符串或者某个字符串起始位置在一个字符串中的位置,而rfind则是从右开始,没有找到为-1.
>>> a="abcdef" >>> a.find("c") 2 >>> a.find("cde") 2 >>> b="abcabcabc" >>> b.rfind("a") 6 >>> b.rfind("abc") 6 >>> b.rfind("d") -1 2.index/rindexindex和rindex的使用方法和find/rfind方法基本一致,只是在没有匹配到结果的时候会返回运行时错误。
>>> b="abcabcabc" >>> b.index("c") 2 >>> b.index("bc") 1 >>> b.rindex("bc") 7 >>> b.rindex("a") 6 >>> b.rindex("d") Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: substring not found还有一种另类的查找,是统计所查字符串出现的次数
>>> b.count("c") 3另外字符串截取的时候介绍的正则表达截取其实也是查找的方式,只是这种方式返回���是字符串,而不是位置。
四.字符串替换和删除由于python中大部分删除操作就是将要删除的内容进行替换成“ ”来完成的。
1. 删除首尾的字符或者转义符除了我们可以通过截取字符串来消除字符串首尾的相应字符串等内容,还可以通过strip方法来实现,另外还有两个很相似的方法lstrip和rstrip,分别是消除首部和尾部的相应字符串。
>>> str="abcdefabc" >>> str.strip("abc") 'def' >>> str.lstrip("abc") 'defabc' >>> str.rstrip("abc") 'abcdef'如果不输入参数,默认删除的是'\n','\t','\r',' '。
2.字符串替换字符串替换使用的replace和Java很类似,都是对指定字符的替换,并且可以指定替换的次数。
>>> str="abcabcabc" >>> str.replace("a","k") 'kbckbckbc' >>> str.replace("a","k",2) 'kbckbcabc'除了使用这种方式,正则式替换也是一种方式
>>> import re >>> a="mark" >>> patten = re.compile("[abc]") >>> patten.sub("o",a) 'mork' >>> re.sub("[abc]","o",a) 'mork'有两种使用方式,效果都是一样的。
3.tab字符串替换通过expandtabs方法将字符串中的tab替换成n个字符空格,n是expandtabs的参数,不填默认为8,即不替换。
>>> a="a b c" >>> a.expandtabs() 'a b c' >>> a.expandtabs(0) 'abc' >>> a.expandtabs(1) 'a b c' 五.字符串转换 1.大小写转换通过python自带的方法将字符串的大小写进行转换,lower是将其中的大写转换成小写,upper则是相反,把小写转换成大写,swapcase则是相互转换,capitalize是将字符小写之后将首字符大写。
>>> a="abCDefG" >>> a.lower() 'abcdefg' >>> a.upper() 'ABCDEFG' >>> a.swapcase() 'ABcdEFg' >>> a.capitalize() 'Abcdefg' 2.字符数值转换字符和数值的转换方式有两种,一种是普通的转换,一种是使用String模块进行转换
>>> str(1) '1' >>> str(1.234) '1.234' >>> int("1") 1 >>> float("1.234") 1.234 >>> chr(97) #ascii码的转换 >>> ord("a") 97