Regular Expression
정규표현식은, 긴 텍스트에서 검색할 문자열 혹은 패턴을 나타내는 기호 및 문자입니다.
정규표현식에 지정된 문자열들이 검색할 문자열에서 매치가 되는지 확인이 가능합니다.
이전 포스팅에서, re 모듈은 findall
, search
, split
, sub
같은 함수들을 가지고 있다는것을 알았고, 몇가지 특정 의미를 가진 문자들 metacharacter 에 대해서 알아보았습니다.
*지난 포스팅에 이어서, special sequences 특정 순서에 대해서 알아봅니다. *
Special sequence 는 \ 뒤에 문자 하나를 붙여서 지정합니다.
아래 테이블로 정리 해봅니다.
문자 |
비고 |
예시 |
\A |
지정된 문자가, 문자열의 앞에 오면 매치를 반환 합니다. |
“\AThe” |
\b |
지정된 문자가, 문자열의 단어의 앞부분 혹은 뒷부분에 있으면, 매치를 반환합니다 |
r”\bain”r”ain\b” |
\B |
지정된 문자가 문자열안에 있지만, 단어의 앞부분 혹은 뒷부분에 없을 경우에 매치를 반환합니다. |
r”\Bain”r”\ain\B” |
\d |
문자열이 숫자를 포함하면 (0-9) 를 가지고 있으면, 매치를 반환합니다 |
“\d” |
\D |
문자열이 숫자를 포함하지 않으면, 매치를 반환 |
“\D” |
\s |
문자열이 빈공간을 가지고 있으면, 매치를 반환 |
“\s” |
\S |
문자열이 빈공간을 가지고 있지 않으면, 매치를 반환 |
“\S” |
\w |
문자열이 아무 문자 (a - Z, 0-9, _)나 가지고 있을경우, 매치를 반환 |
“\w” |
\W |
문자열이, 아무 문자(a-Z, 0-9, _)를 가지고 있지 않을 경우, 매치를 반환 |
“\W” |
\Z |
문자열의 끝에 지정된 문자가 있으면 매치를 리턴 |
“Spain\Z” |
예시
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
|
import re txt = "The rain in Spain"
x = re.findall("\AThe", txt) print(x)
if x: print("매치가 있습니다") else: print("매치가 없습니다")
import re txt = "The rain in Spain"
x = re.findall(r"\bain", txt)
print(x)
if x: print("매치가 있습니다") else: print("매치가 없습니다")
import re txt ="The rain in Spain"
x = re.findall(r"ain\b", txt)
print(x)
if x: print("매치가 있습니다") else: print("매치가 없습니다")
import re txt = "The rain in Spain"
x = re.findall(r"\Bain", txt) print(x)
if x: print("매치가 있습니다") else: print("매치가 없습니다")
import re txt = "The rain in Spain"
x = re.findall(r"ain\B", txt) print(x)
if x: print("매치가 있습니다") else: print("매치가 없습니다")
import re txt = "The rain in Spain"
x = re.findall("\d", txt) print(x)
if x: print("매치가 있습니다") else: print("매치가 없습니다")
import re txt = "The rain in Spain"
x = re.findall("\D", txt) print(x)
if x: print("매치가 있습니다") else: print("매치가 없습니다")
import re txt = "The rain in Spain"
x = re.findall("\s", txt) print(x)
if x: print("매치가 있습니다") else: print("매치가 없습니다")
import re txt = "The rain in Spain"
x = re.findall("\S", txt) print(x)
if x: print("매치가 있습니다") else: print("매치가 없습니다")
import re txt = "The rain in Spain"
x = re.findall("\w", txt) print(x)
if x: print("매치가 있습니다") else: print("매치가 없습니다")
import re txt = "The rain in Spain"
x = re.findall("\W", txt) print(x)
if x: print("매치가 있습니다") else: print("매치가 없습니다")
import re txt = "The rain in Spain"
x = re.findall("Spain\Z", txt) print(x)
if x: print("매치가 있습니다") else: print("매치가 없습니다")
|