프로그래밍/파이썬

백준 9996번 - 정규식

Xaviere 2023. 2. 12. 17:02
import re

n = int(input())

p = input().strip()
p = p.split('*')
pa = p[0] + '.*' + p[1] + '$'
r = re.compile(pa)
for i in range(n):
    instr = input().strip()
    res = r.match(instr)
    
    if res:
        print('DA')
    else:
        print('NE')

처음엔 pa 부분을

p[0] + '.*' + p[1]

으로 했는데 이러면

a*d와 매칭시킬 때 adb 도 매칭이 되는걸로 나온다.

이런 경우를 제외시키기 위해 a*d의 경우 d로 끝나야 한다는 조건인 $를 붙여줬다.

 

$ 메타 문자 대신

fullmatch를 사용해도 된다.