根据re.split
:
请注意,拆分永远不会在空模式匹配上拆分字符串.例如:
>>> re.split('x*', 'foo') ['foo'] >>> re.split("(?m)^$", "foo\n\nbar\n") ['foo\n\nbar\n']
怎么用re.findall
呢?(而不是专注于分隔符,专注于你想要的项目.)
>>> import re >>> s = 'PythonCookbookListOfContents' >>> re.findall('[A-Z][a-z]+', s) ['Python', 'Cookbook', 'List', 'Of', 'Contents']
UPDATE
使用regex
模块(替代正则表达式模块,替换re),可以拆分零宽度匹配:
>>> import regex >>> s = 'PythonCookbookListOfContents' >>> regex.split('(?<=[a-z])(?=[A-Z])', s, flags=regex.VERSION1) ['Python', 'Cookbook', 'List', 'Of', 'Contents']
注意:指定regex.VERSION1
标志以启用零拆分长度匹配行为.
根据re.split
:
请注意,拆分永远不会在空模式匹配上拆分字符串.例如:
>>> re.split('x*', 'foo') ['foo'] >>> re.split("(?m)^$", "foo\n\nbar\n") ['foo\n\nbar\n']
怎么用re.findall
呢?(而不是专注于分隔符,专注于你想要的项目.)
>>> import re >>> s = 'PythonCookbookListOfContents' >>> re.findall('[A-Z][a-z]+', s) ['Python', 'Cookbook', 'List', 'Of', 'Contents']
UPDATE
使用regex
模块(替代正则表达式模块,替换re),可以拆分零宽度匹配:
>>> import regex >>> s = 'PythonCookbookListOfContents' >>> regex.split('(?<=[a-z])(?=[A-Z])', s, flags=regex.VERSION1) ['Python', 'Cookbook', 'List', 'Of', 'Contents']
注意:指定regex.VERSION1
标志以启用零拆分长度匹配行为.