问题:基于正则表达式的Python拆分字符串
"HELLO there HOW are YOU"
用大写单词分割字符串的最佳方法是什么(在Python中)?
所以我最终得到一个像这样的数组: results = ['HELLO there', 'HOW are', 'YOU']
编辑:
我努力了:
p = re.compile("\b[A-Z]{2,}\b")
print p.split(page_text)
不过,它似乎不起作用。
回答 0
回答 1
您可以先行使用:
re.split(r'[ ](?=[A-Z]+\b)', input)
这将在每个空格处分开,后跟一串大写字母,每个大写字母以单词边界结尾。
请注意,方括号仅出于可读性考虑,也可以省略。
如果一个单词的第一个字母大写就足够了(因此,如果您也想在其前面拆分Hello
),它将变得更加容易:
re.split(r'[ ](?=[A-Z])', input)
现在,这会在每个空格处分开,后跟任何大写字母。
回答 2
您的问题包含字符串文字"\b[A-Z]{2,}\b"
,但是这\b
意味着退格,因为没有r-修饰符。
试试:r"\b[A-Z]{2,}\b"
。