정규 표현식은 문자열에 나타는 특정 문자 조합과 대응시키기 위해 사용되는 패턴이라고 한다. 이를 활용하여 문자열에서 원하는 패턴의 문자를 찾거나 패턴에 맞는 양식인지 확인 할 수 있다.
Django를 활용한 프로젝트를 진행하는중, 이메일양식에 맞춰 작성하였는지 확인하는 작업이 필요했다. 정규식을 활용하기로 했다.
'^[a-zA-z0-9-_.]+@+[a-zA-z0-9.]+.+\w+$' 이부분을 앞부분부터 확인해보자.
이를 글로 풀어 쓰자면 '문자열과 세가지(-_.) 특수문자로 시작하고 중간에 @를 포함한뒤 문자열과 DOT(.)을 포함한뒤 DOT(.)이 온뒤 문자열이 오는 문자열'이라는 의미가 된다.
이처럼 암호처럼 보이는 정규식을 통해 복잡한 규칙을 간단하게 표현하는것이 가능하다.
이곳을 통해 직접 입력하고 사용이 가능하다.
Chracter | 뜻 |
---|---|
. | 새로운 문장을 제외한 모든 문자 |
\w \d \s | 글자, 숫자, 공백을 의미 |
\W \D \S | 글자, 숫자, 공백이 아닌것을 의미 |
[abc] | a 또는 b 또는 c |
[^abc] | a 또는 b 또는 c가 아닌 것 |
[a-g] | a부터 g까지 해당되는 문자 |
Chracter | 뜻 |
---|---|
^abc$ | 문자열의 시작(^)과 끝($) |
\b \B | 문자열의 끝이 해당문자 |
she sells seashells
만약 \bsh라고 작성하였다면 위의 문장에서 she의 sh(sh로 시작하기 때문)만 해당되고 ls\b라고 작성하였다면 sells와 seashells의 ls(ls로 끝나기 때문)가 해당된다.
만약 \Bs라고 작성하였다면 위의 문장에서 단어의 시작하는 s를 제외한 모든 s(sells, seashells)가 해당되고 s\B라고 작성하였다면 단어의 끝나는 s를 제외한 모든 s(she, sells, seashells)가 해당된다.
Chracter | 뜻 |
---|---|
\. \* \\ | 기능이 아닌 특수문자로 사용 |
\t \n \r | tab, linefeed, carriage return |