Notice
Recent Posts
Recent Comments
Link
DevKim
[Python] 백준 #10820 문자열 분석 본문
728x90
파이썬 정규 표현식을 이용해서 구했다
<파이썬 정규 표현식 re>
- [] : [ ]사이의 문자들과 매치 되는지
ex.[abc] => abc 중에 하나라도 매치되면 매치 =[a-c]
- ^ 는 반대의 의미 <br>
[^0-9]는 숫자가 아닌 문자만 매치됨
- \d - 숫자와 매치, [0-9]와 동일한 표현식이다.
- \D - 숫자가 아닌 것과 매치, [^0-9]와 동일한 표현식이다.
- \s - whitespace 문자와 매치, [ \t\n\r\f\v]와 동일한 표현식이다. 맨 앞의 빈 칸은 공백문자(space)를 의미한다.
- \S - whitespace 문자가 아닌 것과 매치, [^ \t\n\r\f\v]와 동일한 표현식이다.
- \w - 문자+숫자(alphanumeric)와 매치, [a-zA-Z0-9_]와 동일한 표현식이다.
- \W - 문자+숫자(alphanumeric)가 아닌 문자와 매치, [^a-zA-Z0-9_]와 동일한 표현식이다.
- .은 줄바꿈 문자인 \n을 제외한 모든 문자와 매치됨을 의미
ex) a.b = a + 모든 문자중에 하나라도 있어야함 + b
- * 는 0번 이상 반복을 의미함(존재해도되고 무한대로 반복해도됨)
ex) ca*t = ct,cat,caaaat 모두 매치
- +는 1회 이상 반복될때
- {}로 반복 횟수 제한 가능.
ex) ca{2}t = c + {a는 반드시 2번 반복} + t
ex) ca{2,5}t = a는 2~5회 반복
- ? 는 앞에 문자가 있어도되고 없어도된다는 뜻
import re
while True:
try:
s=input()
a=re.compile('[a-z]')
b=re.compile('[A-Z]')
c=re.compile('[0-9]')
d=re.compile('\s')
print(len(a.findall(s)),len(b.findall(s)),len(c.findall(s)),len(d.findall(s)))
except:
break
728x90
'알고리즘 PS' 카테고리의 다른 글
[Python] 백준 #1406 에디터 (0) | 2021.01.14 |
---|---|
[Python] 백준 #11655 ROT13 (0) | 2021.01.14 |
[Python] 백준 #10808 알파벳 개수 (0) | 2021.01.14 |
[Python] 백준 #10866 덱 (0) | 2021.01.14 |
[Python] 백준 #10845 큐 (0) | 2021.01.14 |
Comments