2014-03-26 8 views
1

다음 형식의 부분 문자열을 포함하는 문자열이 있습니다. i_ 또는 o_으로 시작하여 , 쉼표로 끝납니다.특정 형식의 부분 문자열 추출

어떻게 이러한 문자열을 추출 할 수 있습니까? 예를 들어

는 :

string = 'input [89:0]  i_gth_rxdata,' 

나는 i_gth_rxdata

답변

0
In [6]: import re 

In [7]: text = 'input [89:0] i_gth_rxdata,' 

In [9]: re.search(r'([io]_.*),', text).group(1) 
Out[9]: 'i_gth_rxdata' 

.* 찾은 마지막 쉼표 때까지 탐욕 일치해야합니다. 쉼표가 처음으로에 도달 할 때까지 패턴을 일치 시키려면 r'([io]_.*?),'을 사용하십시오. 여기

차이 보여주는 예입니다

In [15]: re.search(r'([io]_.*),', 'input [89:0] i_gth_rxdata, 1,').group(1) 
Out[15]: 'i_gth_rxdata, 1' 

In [16]: re.search(r'([io]_.*?),', 'input [89:0] i_gth_rxdata, 1,').group(1) 
Out[16]: 'i_gth_rxdata' 
4
my_string = 'input [89:0]  i_gth_rxdata,' 
import re 
print re.findall(r'[io]_.*?(?=,)', my_string) 
# ['i_gth_rxdata'] 

당신은 볼 수 있습니다을 어떻게 정규식 작품, in this online demo

[io]_.*?(?=,) 

Regular expression visualization

Debuggex Demo

0
>>> s = 'input [89:0] i_gth_rxdata,' 
>>> import re 
>>> obj = re.search(r'(i_|o_).*,', s) 
>>> obj.group() 
'i_gth_rxdata,'