Mac*_*rko 0 python regex split
我正在用正则表达式开始冒险.我有兴趣拆分特殊格式的字符串.如果一个字母不在括号内,它应该成为输出列表的不同元素.括号内的字母应放在一起.
样品:
我的字符串=>通缉名单
"ab(hpl)x" => ['a', 'b', 'hpl', 'x']"(pck)(kx)(sd)" => ['pck', 'kx', 'sd']"(kx)kxx(kd)" => ['kx', 'k', 'x', 'x', 'kd']"fghk" => ['f', 'g', 'h', 'k']如何用正则表达式实现re.split?在此先感谢您的帮助.
这不能用re.split,因为它需要分割零长度匹配.
来自http://docs.python.org/library/re.html#re.split:
请注意,拆分永远不会在空模式匹配上拆分字符串.
这是一个替代方案:
re.findall(r'(\w+(?=\))|\w)', your_string)
Run Code Online (Sandbox Code Playgroud)
一个例子:
>>> for s in ("ab(hpl)x", "(pck)(kx)(sd)", "(kx)kxx(kd)", "fghk"):
... print s, " => ", re.findall(r'(\w+(?=\))|\w)', s)
...
ab(hpl)x => ['a', 'b', 'hpl', 'x']
(pck)(kx)(sd) => ['pck', 'kx', 'sd']
(kx)kxx(kd) => ['kx', 'k', 'x', 'x', 'kd']
fghk => ['f', 'g', 'h', 'k']
Run Code Online (Sandbox Code Playgroud)