([0-9a-zA-Z_\-]+)/?([^.\/]+)[\.php|\.html]
이 표현식의 경우 'people'문자열과 'person'문자열은 왜 왜 일치하지 않습니까?정규 표현식 일치
([0-9a-zA-Z_\-]+)/?([^.\/]+)[\.php|\.html]
이 표현식의 경우 'people'문자열과 'person'문자열은 왜 왜 일치하지 않습니까?정규 표현식 일치
대괄호 안의 내용은 괄호 안에 있어야하므로 'people'은 대괄호 안에 'l'까지 일치 시키지만 'person'은 대괄호 안에 문자가 없습니다.
강제로 .php 또는 .html과 일치하지 않으려면 물음표와 함께 따라야합니다. ([0-9a-zA-Z_-]+)/?([^.\/]+)(.php|.html)?
>>> p='([0-9a-zA-Z_\-]+)/?([^.\/]+)(\.php|\.html)?'
>>> p=re.compile(p)
>>> p.match('person')
<_sre.SRE_Match object at 0x9bac0c0>
>>> p.match('people')
<_sre.SRE_Match object at 0x9bac2f0>
>>> p.match('people').group()
'people'
>>> p.match('person').group()
'person'
이 실제로 일치하는 정규 표현식의 어떤 부분 보려면 match.group() 함수, 또는 당신의 마음에 드는 언어로 이에 상응하는 도구를 사용하여 여기
는 가능한 개정 정규식입니다. 그것은 아주 밝게 빛날 수 있습니다.>>> p=re.compile('([0-9a-zA-Z_\-]+)(|\.html|\.php)$')
>>> p.match('ddd').group()
'ddd'
>>> p.match('ddd.html').group()
'ddd.html'
>>> p.match('ddd.jpeg').group()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'group'
당신이 요구하는지에 대한 자세한 명확 수 : 코멘트에 개정 된 질문에 대한
? – David
그는 "문자열 '사람들'이 일치하고 '사람'이 일치하지 않는 이유 '를 의미한다고 생각합니다. –
... 죄송합니다. 뭐라 구요? 처음에는 완전한 문장을 시도해보십시오. >. < –