python笔记1:字符串处理函数

常用的字符串处理函数

1. re.S

对于re.findall(),第三个参数默认为空
返回值为一个列表

import re
data = re.findall(r'(.*?)',text,re.S)
'''
 (.*?)-->'()'标记一个子表达式的开始和结束位置,
 '.'表示除换行符以外的一个字符,
 ‘*’前面内容可以出现0次或多次,
 ‘?’前面的内容(子表达)可以出现0次或1次
 '''

如果不使用re.S参数,则只在每一行内进行匹配,如果一行没有,就换下一行重新开始。
而使用re.S参数以后,正则表达式会将这个字符串作为一个整体,在整体中进行匹配(涉及到类似python’’’ ‘’'括起来的多行字符串时候特别注意)。

2. str.split() 和 str.rsplit()

返回值为一个列表

2.1 str.split()

原型: str.split(sep=None, maxsplit=-1)

第二个参数代表最大分割数
maxsplit默认为-1:即不指定最大分割数目的值。
maxsplit=1的话 表示最多切1刀,最大分割数为2(根据从前往后找到的sep位置切1刀). 如果没有找到sep,则不切分。

2.2 str.rsplit()

原型:str.rsplit(sep=None, maxsplit=-1)
区别 : 它是从后往前找

>>> s = 'a,b,ced'
>>> s.split(',',1)#最多从前往后以‘,’切一刀
['a', 'b,ced']
>>> s.rsplit(',',1)#最多从后往前以‘,’切一刀
['a,b', 'ced']
>>> t = '1,2,3,4,5'
>>> t.split(',',2)
['1', '2', '3,4,5']
>>> t.split('6',2)#找不到不切分
['1,2,3,4,5']

3. str.strip(),str.lstrip()和str.rstrip()

括号中没有内容:相当于空格,即进行匹配 去除的空格

3.1 str.strip()

原型: str.strip([chars])
两端去除:
str两端匹配char,能匹配就删除,不能匹配就下一个char,如果下一个char也无法匹配当前字符就终止**(两端匹配不是同时的,可能是从左往右匹配一遍,再从右往左匹配一遍)**

>>> '1223aass321'.strip('123')
'aass'
>>> '1223aass321'.strip('12')
'3aass3'
>>> '1224aass321'.strip('123')
'4aass'

3.2 str.lstrip()

原型: str.lstrip([chars])
左端去除:
从str左向右匹配char,能匹配就删除,不能匹配就下一个char,如果下一个char也无法匹配当前字符就终止

>>> '122324'.lstrip('2')
'122324'
>>> '122324'.lstrip('12')
'324'
>>> '122324'.lstrip('13')
'22324'

左端去除

3.3 str.rstrip()

原型: str.rstrip([chars])
右端去除:
从str从右往左匹配char,能匹配就删除,不能匹配就下一个char,如果下一个char也无法匹配当前字符就终止

>>> '  123  '.strip()
'123'
>>> '  123  '.lstrip()
'123  '
>>> '  123  '.rstrip()
'  123'

4. str.replace()

原型:str.replace(old, new[, count])

>>> s = ' 123\n'
>>> s
' 123\n'
>>> s.replace('\n','')
' 123'
>>> s
' 123\n'

5. str.join()

原型:str.join(sequence)
sequence :要连接的元素序列(元素类型必须为字符串类型)

通过str将sqeuence连接起来

>>> seq = ('2019','10','19')
>>> s = '-'
>>> s.join(seq)
'2019-10-19'
>>> s.join('23')
'2-3'
>>> '2'.join('abc')
'a2b2c'
>>> 

6. str.translate()

原型:str.translate(table)
参数table为字符的字典表

>>> intab = '123456'
>>> outtab = 'abcdef' #intab与outtab需要等长,每个字符建立字典
>>> transtab = str.maketrans(intab,outtab) #建立字典
>>> s = '2019-10-19-21:03'
>>> s.translate(transtab)
'b0a9-a0-a9-ba:0c'
>>> transtab
{49: 97, 50: 98, 51: 99, 52: 100, 53: 101, 54: 102}
>>> type(transtab)
<class 'dict'>
>>> 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Leo Bliss

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值