정규표현식좀 고쳐주세요.

이소희의 이미지

[1]번 소스 데이터를 [2]번의 출력결과로 만들고 싶습니다.

정규 식을 요렇게 >> Namecard[\s]+[\w\s\:]+

만들면 문장이 다 출력되고, 기타 제가 아는 방법으론 [2]번 출력이 만들어 지지 않네요.

조언 부탁 드립니다.

[1] 소스 데이터
Namecard name: lee age: 32 Namecard name: so age: 22 address: seoul Namecard name: address: busan
 
[2] 출력결과
Namecard name: lee age: 32 
Namecard name: so age: 22 address: seoul 
Namecard name: hee address: busan

serialx의 이미지

저 스트링 마지막에 공백이 있다면 좀 쉬워집니다..

Namecard (?:\w+: (?:\w+ )?)+

In [107]: s
Out[107]: 'Namecard name: lee age: 32 Namecard name: so age: 22 address: seoul Namecard name: address: busan'
 
In [108]: re.findall(r'Namecard (?:\w+: (?:\w+ )?)+', s+" ")
Out[108]: 
['Namecard name: lee age: 32 ',
 'Namecard name: so age: 22 address: seoul ',
 'Namecard name: address: busan ']

공백 없이 한번 도전 해보실 분? :)

serialx의 이미지

저 스트링 마지막에 공백이 있다면 좀 쉬워집니다..

Namecard (?:\w+: (?:\w+ )?)+

In [107]: s
Out[107]: 'Namecard name: lee age: 32 Namecard name: so age: 22 address: seoul Namecard name: address: busan'
 
In [108]: re.findall(r'Namecard (?:\w+: (?:\w+ )?)+', s+" ")
Out[108]: 
['Namecard name: lee age: 32 ',
 'Namecard name: so age: 22 address: seoul ',
 'Namecard name: address: busan ']

공백 없이 한번 도전 해보실 분? :)

행복한고니의 이미지

데이터 종류가 저것뿐이라면...

/Namecard ((?:name|age|address): \w+\s?)+/

이 정도로 가능하지 않을까 싶습니다. ^^;;
아... PCRE 입니다. ^^;;
_______________________________
나는 세상에서 가장 중요한 사람이다.
홈페이지 : http://mygony.com

__________________________________
나는 세상에서 가장 중요한 사람이다.