re教學 Python基於正則表達式拆分字符串




re split python3 (3)

您可以使用前瞻:

re.split(r'[ ](?=[A-Z]+\b)', input)

這將在每個空格處分開,後面跟著一串以字邊界結尾的大寫字母。

請注意,方括號僅用於提高可讀性,也可以省略。

如果一個單詞的第一個字母是大寫的就足夠了(所以如果你想在Hello分開),它會變得更容易:

re.split(r'[ ](?=[A-Z])', input)

現在,這會在每個空格處分開,然後是任何大寫字母。

什麼是用大寫單詞(在Python中)分割字符串的最佳方法,如"HELLO there HOW are YOU"

所以我最終會得到一個像這樣的數組: results = ['HELLO there', 'HOW are', 'YOU']

編輯:

我試過了:

p = re.compile("\b[A-Z]{2,}\b")
print p.split(page_text)

但它似乎不起作用。


你不需要拆分,而是findall:

 re.findall(r'[A-Z]+[^A-Z]*', str)

我建議

l = re.compile("(?<!^)\s+(?=[A-Z])(?!.\s)").split(s)

查看此演示





split