unc = r'\\foo\bar'
string1 = r'\\foo\bar'
string2 = r'\\\\foo\\bar'
if unc == string1:
print "I wish to make a complaint"
if re.match(string1, unc):
print "Ello miss"
if re.match(string2, unc):
print "Sorry I have a cold"
출력은 다음과 같습니다파이썬 백 슬래시 정규식 재미
I wish to make a complaint
Sorry I have a cold
은 re.match 조작 리터럴 문자열을 재-탈출 그래서 "여보세요가 그리워"일이 결코 보인다. 내가 처음에 리터럴로 문자열을 설정 백 슬래시를 다시 탈출해야하는 이유
는 사람이 설명 할 수 있습니까?
나는 구성 파일에 UNC 경로의 목록을 유지하려면 내가 그 문자열을 탈출해야하지 않으려는 것입니다. 비교기가 작동하는 동안 정규식 옵션을 사용할 수 있으면 유용합니다.
'.format()'호출은 중복됩니다. 'string1'과'string2'는 * 이미 * 문자열입니다. –
심지어 "'선호 r'my_regex_wild_pattern'''을 통해" "my_regex_gentle_pattern" ""': 내가 할 수있는 유일한 나쁜 깜짝 마지막 문자에 있습니다. –
@StephaneRolland : 핵심은 파이썬 문자열 리터럴 *과 *를 정규 표현식으로 지정하기위한 이스케이프 시퀀스가 있다는 것입니다. 'r ''원시 문자열 리터럴을 사용하면 파이썬 이스케이프 시퀀스를 비활성화하여 정규 표현식 메타 문자에 집중할 수 있습니다. –