2017-02-22 1 views
1

문자열에는 두 가지 유형이 있습니다. 첫 번째 유형 :파이썬에서 문자열을 추출하는 정규식을 설정하는 방법

'The Five College Region of Western Massachusetts:' 
#Doesn't contain "(" 

두 번째 유형 : 문자열이 포함

'Tuskegee (Tuskegee University)[5]' 
#Containing "(" 

경우 "("이후의 모든 문자를 제거 "("와 "("이전 공백 그렇지 않은 경우. 모든 문자를 추출합니다.

내가 문자열의 두 번째 유형을 추출하는 방법을 firgured있다.

r'(.+) \(' 

답변

1

이것을 위해 정규식이 필요하지 않습니다.

university = 'Tuskegee (Tuskegee University)[5]' 
print(university.split("(", 1)[0].strip()) 
0

사용 re.sub는 정규식 사용하려는 경우 ( 후 모든 것을 제거합니다 : 당신은 공백 일치하는 정규식 re.sub('\s*\(.*',..)을 사용할 수 있습니다

import re 
re.sub(r' \(.*', '', 'Tuskegee (Tuskegee University)[5]') 
# 'Tuskegee' 

re.sub(r' \(.*', '', 'The Five College Region of Western Massachusetts:') 
# 'The Five College Region of Western Massachusetts:' 
0

을 플러스 "(" 를이 일치하는 경우, 그것은 것입니다. 빈 문자열로 바꾸십시오. 그렇지 않으면 아무것도 바뀌지 않습니다.

import re 
re.sub('\s*\(.*', '', 'The Five College Region of Western Massachusetts:') 
#'The Five College Region of Western Massachusetts:' 
re.sub('\s*\(.*', '', 'Tuskegee (Tuskegee University)[5]') 
#'Tuskegee' 
관련 문제