2013-04-25 2 views
0

문자열 목록이 있습니다. 각 문자열에는 임의의 텍스트와 정규식과 일치하거나 일치하지 않을 수있는 일련의 숫자와 문자가 들어 있습니다.문자열의 일부에 정규식 패턴이 포함되어 있는지 확인하십시오.

예 문자열 :

"Bla bla bla 123-abc-456 bla bla blaaha" 

123-abc-456이 정규식과 일치합니다.

모든 일치하는 시퀀스를 새 목록에 저장하고자합니다. 시퀀스는 즉, bla bla bla가 아닙니다.

어떻게이 작업을 수행 할 수 있습니까? 어떻게 든 정규식을 사용하여 시퀀스를 해독해야합니다. 당신이 관심있는 캐릭터 당 하나의 "순서"이 경우

+1

사용're.findall()' –

+3

불가능합니다. 임의의 문자열조차도 정규 표현식이 될 수 있습니다. – nhahtdh

+0

'bla bla bla'는 유효한 정규 표현식입니다 – jamylak

답변

1

:

In [1]: import re 

In [2]: re.search(r'\d{3}-\D{3}-\d{3}', 
    ..: "Bla bla bla 123-abc-456 bla bla blaaha").group() 
Out[2]: '123-abc-456' 

을 그냥 for 루프에서이 작업을 수행하고 새 목록에 결과를 저장합니다.

일치하는 항목을 여러 개 찾으려면 위에 제안 된대로 re.findall을 사용하십시오.

1

정규 표현식에 중괄호를 사용하십시오. 그런 다음 그룹 (1), 그룹 (2)을 사용하여 일치하는 부분을 다시 분리 할 수 ​​있습니다.

관련 문제