[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)

그래도 작동하지 않는 것 같습니다.



답변

나는 제안한다

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

이 데모를 확인하십시오 .


답변

미리보기를 사용할 수 있습니다.

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

이것은 단어 경계로 끝나는 대문자 문자열이 뒤 따르는 모든 공백에서 분할됩니다.

대괄호는 가독성을위한 것이며 생략 할 수도 있습니다.

단어의 첫 글자가 대문자이면 충분하다면 (앞으로도 나누고 싶다면 Hello) 훨씬 쉬워집니다 :

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

이제 이것은 모든 공백에서 대문자로 나뉩니다.


답변

질문에 리터럴 문자열이 포함되어 "\b[A-Z]{2,}\b"있지만 \br 수정자가 없으므로 백 스페이스를 의미합니다.

시도 : r"\b[A-Z]{2,}\b".


답변