"HELLO! HOW ARE YOU?".lower()
'hello! how are you?'
"this is a warning!".upper()
'THIS IS A WARNING!'
x = "Once uppon a time, there was a prince and a princess.".split(" ")
x
['Once', 'uppon', 'a', 'time,', 'there', 'was', 'a', 'prince', 'and', 'a', 'princess.']
" ".join(x)
'Once uppon a time, there was a prince and a princess.'
y = "Once uppon a time, there was a prince and a princess."
print(len(y))
53
y.count('a')
5
y[0:10]
'Once uppon'
import re
my_expression = re.compile("c.t") #정규표현식 #c와 t사이에 하나의 문자가 들어가는가?
x1 = "ct" #문자열
x2 = "cat"
x3 = "caat"
if my_expression.search(x1):
print("Yes!")
else:
print("No") #c와 t사이에 문자 안들어감
No
if my_expression.search(x2):
print("Yes!")
else:
print("No") #c와 t사이에 문자 들어감
Yes!
if my_expression.search(x3):
print("Yes!")
else:
print("No") #c와 t사이에 문자 2개 들어감
No
my_exp = "ca?t" #정규표현식 #?바로 앞에 있는 문자가 0회 또는 1회 출현했는가?
x1 = "ct" #문자열
x2 = "cat"
x3 = "caat"
if re.search(my_exp, x1):
print("Yes!") #?위치에서 바로 앞의 a가 0회 출현
else:
print("No")
Yes!
if re.search(my_exp, x2):
print("Yes!") #?위치에서 바로 앞의 a가 1회 출현
else:
print("No")
Yes!
if re.search(my_exp, x3):
print("Yes!")
else:
print("No") #?위치에서 바로 앞의 a가 2회 출현
No
my_exp= "ca{1,2}t" #정규표현식 #바로 앞에 있는 문자가 1~2회 반복되었는가?
x1 = "ct" #문자열
x2 = "cat"
x3 = "caat"
x4 = "caaat"
if re.search(my_exp, x1):
print("Yes!")
else:
print("No") #a가 1회 반복되지 않음
No
if re.search(my_exp, x2):
print("Yes!") #a가 1회 반복됨
else:
print("No")
Yes!
if re.search(my_exp, x3):
print("Yes!") #a가 2회 반복됨
else:
print("No")
Yes!
if re.search(my_exp, x4):
print("Yes!")
else:
print("No") #a가 3회 반복됬지만 범위 벗어남
No
my_exp = "^This" #정규표현식 #This 패턴으로 시작하는가?
x1 = "That is your book." #문자열
x2 = "This is my book."
if re.search(my_exp, x1):
print("Yes!")
else:
print("No") #This 패턴으로 시작안함
No
if re.search(my_exp, x2):
print("Yes!") #This 패턴으로 시작
else:
print("No")
Yes!
my_exp = "^[Ii]" #정규표현식 #대문자i나 소문자i로 시작하는게 있냐
#^가 밖에 있기때문에 시작하는거
x1 = "I don't like you" #문자열
x2 = "You are great"
x3 = "in case you forget, remember this"
if re.search(my_exp, x1):
print("Yes!") #l이나 i로 시작하는 문자있음
else:
print("No")
Yes!
if re.search(my_exp, x2):
print("Yes!")
else:
print("No") #l이나 i로 시작하는 문자없음
No
if re.search(my_exp, x3):
print("Yes!") #l이나 i로 시작하는 문자있음
else:
print("No")
Yes!
또 다른 예:
my_exp = "^[0-9]" #정규표현식 #0~9사이 숫자로 시작하는가?
x1 = "This is year 2018" #문자열
x2 = "2000 is th eyear of my birth"
if re.search(my_exp, x1):
print("Yes!")
else:
print("No") #0~9사이 숫자로 시작안함
No
if re.search(my_exp, x2):
print("Yes!") #0~9사이 숫자로 시작함
else:
print("No")
Yes!
my_exp = "Python$" #정규표현식 #Python 패턴이 문자열의 제일 끝부분에 있는가?
x1 = "Python is easy" #문자열
x2 = "You need Python"
if re.search(my_exp, x1):
print("Yes!")
else:
print("No") #Python 패턴이 문자열의 제일 끝부분에 없다
No
if re.search(my_exp, x2):
print("Yes!") #Python 패턴이 문자열의 제일 끝부분에 있다
else:
print("No")
Yes!
my_exp = "love|hate" #정규표현식 #문자열에 love패턴이 있거나, hate패턴이 있거나, 둘다 없거나
x1 = "I love you" #문자열
x2 = "I hate you"
x3 = "I like you"
if re.search(my_exp, x1):
print("Yes!") #문자열에 love패턴 있음
else:
print("No")
Yes!
if re.search(my_exp, x2):
print("Yes!") #문자열에 hate패턴 있음
else:
print("No")
Yes!
if re.search(my_exp, x3):
print("Yes!")
else:
print("No") #문자열에 love패턴이나 hate패턴 없음
No
x1 = "Welcome to the year 2018" #sub는 re가 제공하는 함수라 컴파일 필요업음
#대체 후의 문자열 x1가져다가 숫자있으면 x처리해라?
x2 = "Just ~%* ++++--- arrived at @Jack's ##place."
x3 = "I love you."
re.sub('\d','X',x1)
'Welcome to the year XXXX'
x2_modified = re.sub('[@~*#%+-]',' ',x2) #대체는 컴파일없이 바로 가능함, 불필요한걸 스페이스로 모아뒀다가 하나의 스페이스로 합침
x2_modified
"Just arrived at Jack's place."
x2_final = re.sub('\s+',' ',x2_modified) #여기서는 스페이스가 하나로 합체
x2_final
"Just arrived at Jack's place."
re.sub('\s+',' ',x3)
'I love you.'