我知道,当我想在Python和split()方法中使用re模块时,我需要在要断开字符串的位置提供模式(即在空白处,我会使用类似[C0 ])。
但是对于更复杂的情况,我有一个带有如下所示模式的字符串:
pattern = re.compile('\\s+')
我应该如何编写正则表达式以在每次重复时进行拆分?我尝试使用与字符串完全匹配的表达式的取反,直到重复为止,如建议的'letters<space>letters<space>numbers<space>...repeat...'
一样,但是Python抛出错误。有什么建议吗?
提供示例字符串:
here
代替您使用text = 'aaaaa 12345 aaaaa bbbbb 12345 bbbbb ccccc 12345 ccccc'
,也许您可以使用re.split()
:
re.findall()
如果仍然要使用re.findall(r'\w+\s+\w+\s+\w+', text)
# output: ['asdasdasd 1232131 sdadasd', 'dadas 12312312 sdasdas', 'sdasda 312231 sadasdas']
,您可以将其放入一个组,然后使用生成器来清理空间:
re.split()