세 자릿수마다 쉼표를 찍는 숫자와 일치하는 정규식을 만드시오.
정규식은 다음과 일치 해야 됩니다.
다음과는 일치 하면 안됩니다.
import re
regex = re.compile(r'^\d{1,3}(,\d{3})*
성이 Sayonara인 어떤 사람의 전체 이름과 일치하는 정규식을 만드시오.
정규식은 다음과 일치해야 됩니다.
- 'Satoshi Sayonara'
- 'Alice Sayonara'
- 'RoboCop Sayonara'
다음과는 일치 하면 안됩니다.
- 'satoshi Sayonara' (이름의 첫 글자가 대문자가 아니기 때문에)
- 'Mr. Sayonara' (앞에 있는 단어에 문자가 아닌 기호가 있기 때문에)
- 'Sayonara' (이름이 없기 때문에)
- 'Satoshi sayonara' (sayonara의 첫 글자가 대문자가 아니기 때문에)
[#M_코드|접기|
import re
regex = re.compile(r'^[A-Z]\w+\sSayonara')
mo = regex.search('Satoshi Sayonara')
if mo:
print(mo.group())
mo = regex.search('Alice Sayonara')
if mo:
print(mo.group())
mo = regex.search('RoboCop Sayonara')
if mo:
print(mo.group())
mo = regex.search('satoshi Sayonara')
if mo:
print(mo.group())
mo = regex.search('Mr. Sayonara')
if mo:
print(mo.group())
mo = regex.search('Sayonara')
if mo:
print(mo.group())
mo = regex.search('Satoshi sayonara')
if mo:
print(mo.group())
첫 번째 단어는 Alice, Bob, Carol이며, 두 번째 단어는 eats, pets, throws이고, 세 번째 단어는 apples, cats, baseballs이어야 한다. 또한 문장은 마침표로 끝나야 한다. 이정규식은 대소문자를 구분하지 않는다.
일치해야 되는 문장.
- 'Alice eats apples.'
- 'Bob pets cats.'
- 'Carol throws baseballs.'
- 'Alice throws Apples.'
- 'BOB EATS CATS.'
일치 해서 안되는 문장.
- 'RoboCop eats apples.'
- 'ALICE THROWS FOOTBALLS.'
- 'Carol eats 7 cats.'
import re
regex = re.compile(r'(Alice|Bob|Carol)\s(eats|pets|throws)\s(apples|cats|baseballs)\.', re.I)
mo = regex.search('Alice eats apples.')
if mo:
print(mo.group())
mo = regex.search('Bob pets cats.')
if mo:
print(mo.group())
mo = regex.search('Carol throws baseballs.')
if mo:
print(mo.group())
mo = regex.search('Alice throws Apples.')
if mo:
print(mo.group())
mo = regex.search('BOB EATS CATS.')
if mo:
print(mo.group())
mo = regex.search('RoboCop eats apples.')
if mo:
print(mo.group())
mo = regex.search('ALICE THROWS FOOTBALLS.')
if mo:
print(mo.group())
mo = regex.search('Carol eats 7 cats.')
if mo:
print(mo.group())
전달 받은 암호 문자열이 보안 면에서 강력한지는 확인하기 위해서 정규표현식을 사용해보도록 합시다.
강력한 암호의 기준은 최소 8글자에서 15글자이고, 대소문자와 소문자를 모두 포함하며, 적어도 하나의 숫자를 가지고 있는 것을 기준으로 합니다.
import re
regex = re.compile(r'(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,15}')
def checkPassword(text):
mo = regex.search(text)
if mo:
return True
else:
return False
while True:
passwords = input("enter passwords : ")
if checkPassword(passwords):
print("confirm password, remember password")
break
else:
print("wrong password enter password again")
마지막으로 참고자료로 사용하기 좋은 사이트를 소개한다. ( 사실 이분이 더 정리를 잘 하셔서 포스팅한 의미가 퇴색되고 있다 )
http://sweeper.egloos.com/3064293
http://sweeper.egloos.com/3064431
http://sweeper.egloos.com/3064464
http://sweeper.egloos.com/3064600
http://egloos.zum.com/sweeper/v/3064687
http://sweeper.egloos.com/3064730
http://sweeper.egloos.com/3064808
예제 참고용.
http://gocoding.tistory.com/93
)
mo = regex.search('42')
if mo:
print(mo.group())
mo = regex.search('1,234')
if mo:
print(mo.group())
mo = regex.search('6,368,745')
if mo:
print(mo.group())
mo = regex.search('12,34,567')
if mo:
print(mo.group())
mo = regex.search('1234')
if mo:
print(mo.group())
_M#]
성이 Sayonara인 어떤 사람의 전체 이름과 일치하는 정규식을 만드시오.
정규식은 다음과 일치해야 됩니다.
- 'Satoshi Sayonara'
- 'Alice Sayonara'
- 'RoboCop Sayonara'
다음과는 일치 하면 안됩니다.
- 'satoshi Sayonara' (이름의 첫 글자가 대문자가 아니기 때문에)
- 'Mr. Sayonara' (앞에 있는 단어에 문자가 아닌 기호가 있기 때문에)
- 'Sayonara' (이름이 없기 때문에)
- 'Satoshi sayonara' (sayonara의 첫 글자가 대문자가 아니기 때문에)
import re
regex = re.compile(r'^[A-Z]\w+\sSayonara')
mo = regex.search('Satoshi Sayonara')
if mo:
print(mo.group())
mo = regex.search('Alice Sayonara')
if mo:
print(mo.group())
mo = regex.search('RoboCop Sayonara')
if mo:
print(mo.group())
mo = regex.search('satoshi Sayonara')
if mo:
print(mo.group())
mo = regex.search('Mr. Sayonara')
if mo:
print(mo.group())
mo = regex.search('Sayonara')
if mo:
print(mo.group())
mo = regex.search('Satoshi sayonara')
if mo:
print(mo.group())
첫 번째 단어는 Alice, Bob, Carol이며, 두 번째 단어는 eats, pets, throws이고, 세 번째 단어는 apples, cats, baseballs이어야 한다. 또한 문장은 마침표로 끝나야 한다. 이정규식은 대소문자를 구분하지 않는다.
일치해야 되는 문장.
- 'Alice eats apples.'
- 'Bob pets cats.'
- 'Carol throws baseballs.'
- 'Alice throws Apples.'
- 'BOB EATS CATS.'
일치 해서 안되는 문장.
- 'RoboCop eats apples.'
- 'ALICE THROWS FOOTBALLS.'
- 'Carol eats 7 cats.'
import re
regex = re.compile(r'(Alice|Bob|Carol)\s(eats|pets|throws)\s(apples|cats|baseballs)\.', re.I)
mo = regex.search('Alice eats apples.')
if mo:
print(mo.group())
mo = regex.search('Bob pets cats.')
if mo:
print(mo.group())
mo = regex.search('Carol throws baseballs.')
if mo:
print(mo.group())
mo = regex.search('Alice throws Apples.')
if mo:
print(mo.group())
mo = regex.search('BOB EATS CATS.')
if mo:
print(mo.group())
mo = regex.search('RoboCop eats apples.')
if mo:
print(mo.group())
mo = regex.search('ALICE THROWS FOOTBALLS.')
if mo:
print(mo.group())
mo = regex.search('Carol eats 7 cats.')
if mo:
print(mo.group())
전달 받은 암호 문자열이 보안 면에서 강력한지는 확인하기 위해서 정규표현식을 사용해보도록 합시다.
강력한 암호의 기준은 최소 8글자에서 15글자이고, 대소문자와 소문자를 모두 포함하며, 적어도 하나의 숫자를 가지고 있는 것을 기준으로 합니다.
import re
regex = re.compile(r'(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,15}')
def checkPassword(text):
mo = regex.search(text)
if mo:
return True
else:
return False
while True:
passwords = input("enter passwords : ")
if checkPassword(passwords):
print("confirm password, remember password")
break
else:
print("wrong password enter password again")
마지막으로 참고자료로 사용하기 좋은 사이트를 소개한다. ( 사실 이분이 더 정리를 잘 하셔서 포스팅한 의미가 퇴색되고 있다 )
http://sweeper.egloos.com/3064293
http://sweeper.egloos.com/3064431
http://sweeper.egloos.com/3064464
http://sweeper.egloos.com/3064600
http://egloos.zum.com/sweeper/v/3064687
http://sweeper.egloos.com/3064730
http://sweeper.egloos.com/3064808
예제 참고용.
http://gocoding.tistory.com/93