python(5)字符串处理 (sub,replace,find,index,upper,strip,split,sub翻页

时间:2023-03-09 09:11:55
python(5)字符串处理 (sub,replace,find,index,upper,strip,split,sub翻页

一,sub和replace的用法

re.sub 函数进行以正则表达式为基础的替换工作

re.sub替换到目标字符串中的a,b或者c,并全部替换

另加上sub翻页操作:

re.sub('start=\d+','start=%d'%i,url,re.S)
 >>> import re
>>> re.sub('[abc]','o','Mark')
'Mork'
>>> re.sub('[abc]','o','caps')
'oops'
>>

replace 用法介绍:

 >>> a
'asds23DFG34'
>>> a.replace('s','M') #全部替换
'aMdM23DFG34'
>>> b = 'adfafafafa'
>>> b.replace('a','M',3) #指定个数的替换
'MdfMfMfafa'

二,find和index的用法

index,find 返回的都是找到的字符串的下标;find如果找不到返回的值 则是-1,而index直接抛出异常

a.find('t',start)从起始位置搜索

a.find('t',start,end)从指定位置开始搜索

a.rfind('t')从右边位置开始搜索

a.count('t') 搜索到多少个指定的字符

 >>> a = ''
>>> a.find('')
0
>>> a.find(5)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: expected a character buffer object
>>> a.find('')
1
 >>> a
''
>>> f = a.find('M')
>>> f
-1
>>> f = a.find('') #返回的是字符串的第一个位置
>>> f
2
>>> f = a.find('')
>>> f
-1
 ''
>>> a.index('')
2
>>> a.index('')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: substring not found
>>> f = a.index('')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: substring not found

三,大小写处理,upper,lower,swapcase,capitalize,title

 >>> a
'123dfsdfs'
>>> a = 'asds23DFG34'
>>> a.upper() #全部大写
'ASDS23DFG34'
>>> a.lower() #全部小写
'asds23dfg34'
>>> a.swapcase() #大小写交换
'ASDS23dfg34'
>>> a.capitalize() #首字母大写其余小写
'Asds23dfg34'
>>> a.title()
'Asds23Dfg34' #子串,首字母大写
>>>
KeyboardInterrupt

四,strip的用法

Python中的strip用于去除字符串的首尾字符,同理,lstrip用于去除左边的字符,rstrip用于去除右边的字符。

这三个函数都可传入一个参数,指定要去除的首尾字符。

需要注意的是,传入的是一个字符数组,编译器去除两端所有相应的字符

 >>> a
'asds23DFG34'
>>> a.strip('a')
'sds23DFG34'
>>> a.strip('s')
'asds23DFG34'
>>> s = 'saaaay yes no yaaaass'
>>> s.strip('say') #两边都找
' yes no ' #两边各有一个空格
>>> s.lstrip('say') #只找左边
' yes no yaaaass'
>>> s.rstrip('say') #只找右边
'saaaay yes no '

,split的用法

Python split()通过指定分隔符对字符串进行切片

语法 str.split('分隔符',num)

  • str -- 分隔符,默认为空格。
  • num -- 分割次数。
  • 返回分割后的字符串列表
  • 结果一:把\n归为了换行符,所以直接去掉了
  • #!/usr/bin/python
    
    str = "Line1-abcdef \nLine2-abc \nLine4-abcd"
    print str.split( )
    print str.split(' ', 1 ) 以上实例输出结果如下:
    ['Line1-abcdef', 'Line2-abc', 'Line4-abcd']
    ['Line1-abcdef', '\nLine2-abc \nLine4-abcd']

    样例:

>>> str = "asd \dfa \dadf"
>>> str.split()
['asd', '\\dfa', '\\dadf'] #自动增加了换行符
>>> str = "asd \\dfa \\dadf"
>>> str.split()
['asd', '\\dfa', '\\dadf']
>>> aa = str.split()
>>> aa
['asd', '\\dfa', '\\dadf']
>>> aa[]
'asd'
>>> aa[]
'\\dfa'
>>> aa[]
'\\dadf'
>>> bb = r"asdf \bsdf \fsdfe"
>>> bb.split()
['asdf', '\\bsdf', '\\fsdfe']
>>> print aa[] #自动去掉转义
asd
>>> print aa[]
\dfa
>>> print aa[]
\dadf
>>>