는 다음 문자열을 감안할 때 :파이썬 정규식 일치하는 문자 별표
s = 'abcdefg*'
어떻게 그것을 않거나 별표 (*)로 끝나는 소문자와 선택적으로 만들어진 다른 문자열과 일치 할 수 있습니까? 다음과 같이 작동 할 것이라고 생각했지만 그렇지 않습니다.
re.match(r"^[a-z]\*+$", s)
일치 항목이 아니며 None
을 제공합니다.
re.match(r"^[a-z]+\*?$", s)
는 다음 문자열을 감안할 때 :파이썬 정규식 일치하는 문자 별표
s = 'abcdefg*'
어떻게 그것을 않거나 별표 (*)로 끝나는 소문자와 선택적으로 만들어진 다른 문자열과 일치 할 수 있습니까? 다음과 같이 작동 할 것이라고 생각했지만 그렇지 않습니다.
re.match(r"^[a-z]\*+$", s)
일치 항목이 아니며 None
을 제공합니다.
re.match(r"^[a-z]+\*?$", s)
소문자로만 구성되고 별표로 끝나는 다른 문자열을 어떻게 찾을 수 있습니까?
다음은 그것을 할 것입니다 :
re.match(r"^[a-z]+[*]?$", s)
^
은 문자열의 시작과 일치합니다.[a-z]+
은 하나 이상의 소문자와 일치합니다.[*]?
은 0 개 또는 하나의 별표와 일치합니다.$
은 문자열의 끝과 일치합니다.원본 정규 표현식은 정확히 하나의 소문자와 하나 이상의 별표가 일치합니다.
\*?
는 0 또는 1 별표 수단 하나의 별표 (이스케이프 된 별표 뒤에 오는 물음표)
귀하의 정규식은 "정확히 하나의 별표가 붙은 하나의 소문자"를 의미합니다 ..
이 제로 이상의 소문자 (따라서 제 별표)로 구성된 스트링 0 또는 뒤에 "수단
re.match(r"^[a-z]*\*?$", s)
보십시오
당신은 그 중 하나 이상을 원한다는 것을 나타 내기 위해 [a-z] 일치 뒤에 +를 잊었습니다 (지금은 하나만 일치합니다). [a-z]+
re.match(r"^[a-z]+\*+$", s)
re.match(r"^[a-z]+\*?$", s)
소문자의 순서와 일치하고, \*?
는 옵션 문자 *
chatacter 일치합니다.