반응형
SMALL
정규 표현식 객체 사용하기
- import re 해서 사용한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | import re # 검증할 문자열 myStr="Hello,World" result = re.search("Hello",myStr) result2 = re.search("Hello2",myStr) print "result:",result print "result2:",result2 # 참조값이 있는 변수 result VS 없는 변수 result2 print "bool(result):", bool(result) print "bool(result2):", bool(result2) | cs |
검증할 문자열에서 해당 정규표현식에 매칭되는 문자열을 찾아서
있으면 result 에는 어떤 객체의 참조값이 있는 거고
없으면 참조값이 없는 것
bool이 true 이냐 false 이냐에 따라서 선택적인 동작을 할 수가 있어
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | import re # 검증할 문자열 myStr="who is who" # 검증할 정규 표현식 reg1="^who" reg2="^Who" # 검증결과를 bool type 으로 받아보기 result4 = bool(re.search(reg1, myStr)) result5 = bool(re.search(reg2, myStr)) print "result4 :", result4 print "result5 :", result5 | cs |
소문자 who 로 시작하는지
대문자 Who 로 시작하는지 검증
1 2 3 4 5 6 7 8 9 10 11 | import re # 검증할 문자열 myStr = u"Regular Expression is Powerful! 가나다가나다" # "r","가" 이라는 문자열을 모두 찾아서 list type 으로 리턴 result5 = re.findall(u"r", myStr) result6 = re.findall(u"가", myStr) print result5 print result6 | cs |
uac00 이 유니코드로 '가'
1 2 3 4 5 6 7 8 9 10 11 | import re # 검증할 문자열 myStr = u"$25$ ^^ and $50$" # 정규 표현식에서 특별한 의미를 가지는 문자열을 찾고 싶을때 \(역슬레시) result7 = re.findall(u"\$", myStr) result8 = re.findall(u"\^", myStr) print result7 print result8 | cs |
정규표현식에서
^는 시작을 의미하고 $는 끝을 의미해
특별한 의미를 갖고 있는 건 특별한 의미를 갖지 말라고 해야해
역슬레시를 붙이지 않으면 생각대로 출력이 안됌
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import re # 검증할 문자열 myStr=u"김구라abcd해골^^^^원숭이1234" result9 = re.findall(u"[가-힝]", myStr) for item in result9: print item print "------------" result9 = re.findall(u"[가-힝]+", myStr) for item in result9: print item | cs |
[가-힝]
한글 한글자를 찾는거야
각각 배열의 방에 넣어서 준거
[가-힝]+
연속된 한글을 찾아서 배열에 넣는 것
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | import re # 검증할 문자열 myStr = u"abcdefgh012346789ABCDEFGH!@#!$%가나다라" # 특수문자 허용하지 않음 result10 = re.findall(u"[a-zA-Z0-9]", myStr) result11 = re.findall(u"[\w]", myStr) for item in result10: print item, # 한줄로 출력할 때 print "--------" for item in result11: print item, # 한줄로 출력할 때 | cs |
[a-zA-Z0-9] 와 [\w] 는 같은 것
반응형