您的位置:首页 > 编程语言 > Python开发

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

2018-03-03 14:18 253 查看
先来看看
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)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息