regular expression 정규표현식

# regexp
/ 정규식 패턴 시작과 끝
^ 문자열의 시작, ^a 는 a로 시작하는
$ 문자열의 끝, a$ a로 끝나는
? 앞문자가 0번 또는 1번 발생 {0,1} 과 같다.
* 앞문자가 0번 이상 발생 {0,} 과 같다.
+ 앞문자가 1번 이상 발생 {1,} 과 같다.
. 어떤 문자도 일치
| 선택, a|b 는 a 또는 b
() 하위식(subexpression), 괄호 안의 내용을 하나의 그룹으로, 그룹마다 왼쪽부터 $1 $2 ... $괄호개수 로 사용된다.
(?:) 그룹으로 처리되지 않도록 한다.[] 안의 문자 한개 선택, a[bcd]a 는 aba, aca, ada 가 된다.
[a-z] a부터z 중 문자 하나, a, b .. z 가 된다.
[^] 제외(부정), [^ab]z는 az, bz 를 제외한 cz, dz, Az, Bz, ... Zz 등이 된다.
a{2} a 가 2번 반복
a{1,5} a 가 1번 이상 5번 이하 반복
a{1,} a 가 1번 이상 반복
\특수문자 특수문자 자체
\0 null\n 줄바꿈\r 캐리지 리턴
\d 숫자
\D 숫자가 아닌
\s 공백
\S 공백이 아닌
\t 탭
\v 버티컬 탭
\w 워드 [A-Za-z0-9_] 와 같다.\W 워드가 아닌 [^A-Za-z0-9_] 와 같다.
\< 단어의 시작
\> 단어의 끝

# /패턴/ 뒤에 명시
g 전체대상
i 대소문자 무시
m 멀티라인
x 공백문자 무시

# matched text$1 $2 ... $n 으로 정규식과 일치하는 n 개의 값을 지칭한다.

# nginx flag
~ 는 case-sensitive(대소문자 구별) 정규식
~* 는 case-insensitive(대소문자 구별안함) 정규식
!~ 는 case-sensitive(대소문자 구별) 정규식 negative(not)
!~* 는 case-insensitive(대소문자 구별안함) 정규식 negative(not)
@ 는 location 블럭이름 정의

# glob 표현(패턴) 정규식은 아니고, 유닉스에서 파일 집합을 표현하는데 쓰인다.
* 는 어떤 문자든 0번 이상 매칭
? 는 어떤 문자든 1번 매칭

# 참고
# 정규식 테스트 https://regexr.com/

comments:

댓글 쓰기