Python基于正则expression式分割string
用大写字母(Python)分割string"HELLO there HOW are YOU"
的最佳方法是什么?
所以我最终会得到一个这样的数组: results = ['HELLO there', 'HOW are', 'YOU']
编辑:
我努力了:
p = re.compile("\b[AZ]{2,}\b") print p.split(page_text)
但似乎并不奏效。
我build议
l = re.compile("(?<!^)\s+(?=[AZ])(?!.\s)").split(s)
检查这个演示 。
你可以使用一个lookahead:
re.split(r'[ ](?=[AZ]+\b)', input)
这将在每个空格处被分割,后面跟着一串以大写字母结尾的大写字母。
请注意,方括号只是为了可读性,也可以省略。
如果一个单词的第一个字母是大写字母就足够了(所以如果你想要在Hello
前面分割),它变得更加容易:
re.split(r'[ ](?=[AZ])', input)
现在这个分裂在每个空格,然后是任何大写字母。
你不需要拆分,而是find:
re.findall(r'[AZ]+[^AZ]*', str)