re.split()(关键词:Python/正则表达式/re/split)

先来看看string.split()这种形式,例如:

>>> import string
>>> str = 'assadddaffffa'
>>> str.split('a')
['', 'ss', 'ddd', 'ffff', '']

str.split()是分解字符串来完成解析的最常用的方法之一。不过,它只支持使用字面值作为分隔符。有时,如果输入没有一致的格式,就需要有1个正则表达式。例如,有很多纯文本标记语言都把段落分隔符定义为2个或多个换行符(\n)。在这种情况下,就不能使用str.split(),因为这个定义中提到了“或多个”。

再看1个例子:

>>> import re
>>> formula = 'YOU == ME**2'
>>> re.split('[A-Z]+', formula)
['', ' == ', '**2']

这里,[A-Z]+中的加号+表示,至少1次。[A-Z]+则表示,至少出现1个大写字母。

re.split('[A-Z]+', formula)的含义是,将formula字符串分解。分解的规则是,将formula字符串中的1个及以上字母去掉,返回剩余字符的1个列表。

>>> formula = 'YOU == ME**2'
>>> re.split('([A-Z]+)', formula)
['', 'YOU', ' == ', 'ME', '**2']

>>> formula = 'YOU==ME**2'
>>> re.split('([A-Z]+)', formula)
['', 'YOU', '==', 'ME', '**2']

'([A-Z]+)'相较于'[A-Z]+'多了1对圆括号,意思是保留formula中的字母。

参考文献:
1. 《Python 标准库》 - 第1章 文本 - 1.3 re 正则表达式 - 1.3.11 利用模式拆分(P46 - P48)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值