Regular Expression
Regular Expression
-
특정한 규칙을 가진 문자열의 집합을 표현하기 위해 쓰이는 형식 언어
-
정규식에서 사용되는 기호를 Meta 문자라고 함.
Meta Characters
^: 문자열의 시작을 표현^abc: abc로 시작하는 문자열 (abc,abcde, …)
$: 문자열의 종료를 표현man$: man으로 끝나는 문자열 (man, human)
.: 개행을 제외한 임의의 한 문자- ex)
Hello, World!
- ex)
[]: 괄호 안의 문자를 찾음[abc]: 문자열에서 a, b, c를 찾음 (human,avocado)
[^]: 괄호 안의 문자를 제외한 문자를 찾음[^aeiou]: 문자열에서 a, e, i, o, u를 제외한 문자를 찾음 (human, avocado)
[-]: 해당 범위의 문자를 찾음[a-z]: 문자열에서 a~z의 문자를 찾음 (MynameisDetegiCE.)
|: OR(): 여러 패턴을 같이 사용하기 위한 그룹화
Repetition Characters
{n,m}: 앞 문자가 n개 이상 m개 이하[0-9]{1,2}: 숫자가 1개 이상 2개 이하 있음 (2019Dec5Thursday)[a-z]{1,2}[0-9]{1,2}: (2019Dec5Thursday)
{n,}: 앞 문자가 n개 이상[A-Za-z]{5,}: 영문자가 5개 이상 (2019Dec5Thursday)
{n}: 앞 문자가 정확히 n개,{n,n}과 동일[0-8]{2}: 0부터 8까지 숫자가 2개 연속 (Samsung 931st Day Stock : 3958201)
?: 앞 문자가 없거나 하나 있음,{0,1}과 동일ho?: h 뒤에 o가 있거나 하나 있음 (Ihave 1house and 2 buildings.)
+: 앞 문자가 하나 이상,{1,}과 동일zz+: z 뒤에 z가 하나 이상 있음 (fluzy, fluzzy, fluzzzzzzy)ad+: a 뒤에 d가 하나 이상 있음 (adaddadaaaaddddad)[0-9][0-9]+: 숫자 뒤에 숫자가 하나 이상 있음 (03da98df8g4532)
*: 앞 문자가 0개 이상,{0,}과 동일[0-9][a-z]*: 숫자 뒤에 소문자가 0개 이상 있음 (03da98df8g45)[a-z]*[0-9]+: 소문자가 0개 이상 뒤에 숫자가 1개 이상 있음 (Class94SangwookLee094)
Escape Characters
이스케이프의 경우 대문자로 작성시 그 반대를 찾음
\s: 공백 문자 (\r,\n,\t,\f,\v,) 를 찾음\b: 문자 사이의 공백 문자를 찾음\d:[0-9]와 동일- ex) I have
1house and2buildings.
- ex) I have
\t: 탭 문자\w: 단어 영문자 + 숫자 + 밑줄[0-9a-zA-Z_]와 동일
Comments