정규 표현 식 04 - 여러 문자 일치
1920 단어 파 이 썬 기초 지식
여러 문자 와 일치 하 는 형식
문자
기능.
*
이전 문자 와 일치 하여 0 회 또는 무한 회 나타 나 면 있 으 나 없 음
+
이전 문자 와 일치 하 는 경우 1 회 또는 무한 회, 즉 최소 1 회
?
이전 문자 와 일치 하면 한 번 또는 0 번 나타 납 니 다. 즉, 한 번 있 거나 없 거나.
{m}
이전 문자 와 일치 하여 m 회 나타 나 기
{m,n}
이전 문자 와 일치 하여 m 에서 n 회 까지 나타 납 니 다.
예시 1: *
필요: 일치 합 니 다. 문자열 의 첫 번 째 자 모 는 대소 문자 이 고 뒤쪽 은 소문 자 이 며 이 소문 자 들 은 있 으 나 마 나 합 니 다.
#coding=utf-8
import re
ret = re.match("[A-Z][a-z]*","M")
print(ret.group())
ret = re.match("[A-Z][a-z]*","MnnM")
print(ret.group())
ret = re.match("[A-Z][a-z]*","Aabcdef")
print(ret.group())
실행 결과:
M
Mnn
Aabcdef
예시 2: +
필요: 일치 하 는 변수 이름 이 올 바른 지 여부
#coding=utf-8
import re
names = ["name1", "_name", "2_name", "__name__"]
for name in names:
ret = re.match("[a-zA-Z_]+[\w]*",name)
if ret:
print(" %s " % ret.group())
else:
print(" %s " % name)
실행 결과:
name1
_name
2_name
__name__
예시 3:?
필요: 0 에서 99 사이 의 숫자 일치
#coding=utf-8
import re
ret = re.match("[1-9]?[0-9]","7")
print(ret.group())
ret = re.match("[1-9]?\d","33")
print(ret.group())
ret = re.match("[1-9]?\d","09")
print(ret.group())
실행 결과:
7
33
0 # , $
예제 4: {m}
필요: 8 ~ 20 비트 의 암 호 를 일치 시 키 면 대소 문자, 숫자, 밑줄 을 그 을 수 있 습 니 다.
#coding=utf-8
import re
ret = re.match("[a-zA-Z0-9_]{6}","12a3g45678")
print(ret.group())
ret = re.match("[a-zA-Z0-9_]{8,20}","1ad12f23s34455ff66")
print(ret.group())
실행 결과:
12a3g4
1ad12f23s34455ff66