2017-02-04 3 views
-2

몇 가지 패턴을 일치 시키려고하고 있는데 제대로 작동하지 않는 것 같습니다.여러 그룹 (선택 사항)을 사용하는 파이썬 정규식

내가 일치하도록 노력하고있어 패턴은 다음과 같습니다

David C. Drummond 
Sundar Pichai 
Julie Spellman Sweet 

나는 3 그룹과 일치하는 정규식 표현이 필요합니다. 내가 지금까지 시도입니다했습니다 무엇

: r"^(\w*)\W?(\w*|\w\.)\W?(\w*)" 단어 (\s, \b) 사이의 공간 후 욕심 아닌 욕심 기호 (?)와 공간에 대한 많은 변화와 함께.

+1

패턴이 모두 일치해야합니다. 실제로 패턴은 시작 부분이있는 모든 문자열 (즉, 모든 문자열)과 일치합니다. 왜냐하면 다른 모든 요소는 선택 사항이기 때문입니다. – melpomene

+0

그러나 그 모두와 일치하지 않습니다. – bjj

+0

[mcve]를 게시하십시오. – melpomene

답변

0

표시 한 문자열의 경우 ^(\w+)\s+(?:(\w\.|\w+)\s+)?(\w+)$을 사용하여 일치시킬 수 있으며 첫 번째, 중간 및 성은 세 개의 다른 그룹에 포함되며 두 번째는 선택 사항입니다.

https://regex101.com/r/O8NniM/1

+0

그것은 작동하지만 melpomene 내 정규 표현식이 작동해야한다고하지만 그렇게하지 않습니다. 네가 왜 일하는지 분명히 해줄 수 있니? – bjj