웹마스터 팁

정규식 문법

2014.02.28 23:21

웹엔진

정규식 문법입니다.
(?=pattern) 와 같은 문법은 잘 설명된게 없기도 하고 찾기도 어려워서 올립니다.

문자설명
\ 다음에 오는 문자를 특수 문자, 리터럴, 역참조 또는 8진수 이스케이프로 표시합니다. 예를 들어, 'n'은 문자 "n"을 찾지만 '\n'은 줄 바꿈 문자를 찾습니다. 시퀀스 '\\'는 "\"를 찾고 "\("는 "("를 찾습니다.
^ 입력 문자열의 시작 부분에서 위치를 찾습니다. RegExp 개체의 Multiline 속성이 설정되어 있으면 ^에서는 '\n'이나 '\r' 다음의 위치도 찾습니다.
$ 입력 문자열의 끝 부분에서 위치를 찾습니다. RegExp 개체의 Multiline 속성이 설정되어 있으면 $는 '\n'이나 '\r' 앞의 위치도 찾습니다.
* 앞의 문자나 부분식을 0개 이상 찾습니다. 예를 들어, zo*는 "z"과 "zoo"를 찾습니다. *는 {0,}에 해당합니다.
+ 앞의 문자나 부분식을 1개 이상 찾습니다. 예를 들어, 'zo+'는 "zo"와 "zoo"는 찾지만 "z"는 찾지 않습니다. +는 {1,}에 해당합니다.
? 앞의 문자나 부분식을 0개나 1개 찾습니다. 예를 들어, "do(es)?"는 "do"나 "does"에서 "do"를 찾습니다. ? 는 {0,1}에 해당합니다.
{n} n은 음이 아닌 정수입니다. 정확히 n개 찾습니다. 예를 들어, 'o{2}'는 "Bob"의 'o'는 찾지 않지만 "food"에 있는 두 개의 o는 찾습니다.
{n,} n은 음이 아닌 정수입니다. n개 이상을 찾습니다. 예를 들어, o{2,}는 "Bob"의 "o"는 찾지 않지만 "foooood"의 o는 모두 찾습니다. 'o{1,}'은 'o+'에 해당합니다. 'o{0,}'은 'o*'에 해당합니다.
{n,m} M 및 n은 음수가 아닌 정수이며 n <= m입니다. n개 이상 m개 미만을 찾습니다. 예를 들어, "o{1,3}"은 "fooooood"의 처음에 오는 3개의 o를 찾습니다. 'o{0,1}'은 'o?'에 해당합니다. 쉼표와 숫자 사이에는 공백을 넣을 수 없습니다.
? *, +, ?, {n}, {n,}, {n,m} 등의 다른 수량자 뒤에 바로 이 문자가 오면 일치하는 패턴은 non-greedy입니다. non-greedy 패턴은 가능한 한 검색 문자열을 적게 찾습니다. 반면 기본 greedy 패턴은 가능한 한 검색 문자열을 많이 찾습니다. 예를 들어, "oooo" 문자열에서 'o+?'는 "o" 하나만 찾는데 'o+'는 모든 'o'를 찾습니다.
. "\n"이외의 모든 단일 문자를 찾습니다. '\n'을 비롯한 모든 단일 문자를 찾으려면 '[\s\S]' 패턴을 사용합니다.
(pattern) 패턴을 찾아 일치하는 항목을 캡처하는 부분식입니다. $0…$9 속성을 사용하여 결과로 생성된 Matches 컬렉션에서 캡처된 일치 항목을 검색할 수 있습니다. 괄호 문자( )를 찾으려면 '\('이나 '\)'를 사용합니다.
(?:pattern) 패턴은 찾지만 일치하는 항목은 캡처하지 않는 부분식, 즉 나중에 사용하기 위해 저장하지 않는 비캡처링 일치 항목입니다. 패턴의 일부를 "or" 문자(|)를 사용하여 결합할 때 유용합니다. 예를 들어 'industr(?:y|ies)는 'industry|industries'보다 더 경제적인 표현입니다.
(?=pattern) 양의 미리 보기 검색을 수행하는 부분식으로 패턴에 일치하는 문자열이 시작된 위치에서 문자열을 찾습니다. 이는 비캡처링 일치, 즉 나중에 사용하기 위해 캡처하지 않는 일치입니다. 예를 들어 'Windows (?=95|98|NT|2000)'는 "Windows 2000"의 "Windows"는 찾지만 "Windows 3.1"의 "Windows"는 찾지 않습니다. 미리 보기는 문자를 소비하지 않습니다. 즉, 일치가 나타나면 미리 보기를 구성하는 문자 다음이 아니라 마지막 일치 항목 바로 뒤에서 다음 일치 항목에 대한 검색이 시작됩니다.
(?!pattern) 음의 미리 보기 검색을 수행하는 부분식으로 패턴에 일치하지 않는 문자열이 시작된 위치에서 검색 문자열을 찾습니다. 이는 비캡처링 일치, 즉 나중에 사용하기 위해 캡처하지 않는 일치입니다. 예를 들어 'Windows (?!95|98|NT|2000)'는 "Windows 3.1"의 "Windows"는 찾지만 "Windows 2000"의 "Windows"는 찾지 않습니다. 미리 보기는 문자를 소비하지 않습니다. 즉, 일치가 나타나면 미리 보기를 구성하는 문자 다음이 아니라 마지막 일치 항목 바로 뒤에서 다음 일치 항목에 대한 검색이 시작됩니다.
x|y x 또는 y를 찾습니다. 예를 들어 'z|food'는 "z" 또는 "food"를 찾습니다. '(z|f)ood'는 "zood" 또는 "food"를 찾습니다.
[xyz] 문자 집합. 괄호로 묶인 문자 중 하나를 찾습니다. 예를 들어, '[abc]'는 "plain"에서 'a'를 찾습니다.
[^xyz] 음수 문자 집합. 괄호로 묶이지 않은 문자를 찾습니다. 예를 들어, '[^abc]'는 "plain"에서 'p'를 찾습니다.
[a-z] 문자의 범위. 지정한 범위에서 문자를 찾습니다. 예를 들어, '[a-z]'는 'a'에서 'z'까지의 범위에서 소문자 영문자를 찾습니다.
[^a-z] 음의 범위 문자. 지정한 위치에 있지 않은 문자를 찾습니다. 예를 들어, '[^a-z]'는 'a'에서 'z'까지의 범위에 있지 않은 문자를 찾습니다.
\b 단어 경계, 즉 단어와 공백 사이의 위치를 찾습니다. 예를 들어, 'er\b'는 "never"의 'er'은 찾지만 "verb"의 'er'은 찾지 않습니다.
\B 비단어 경계를 찾습니다. 'er\B'는 "verb"의 'er'은 찾지만 "never"의 'er'은 찾지 않습니다.
\cx x로 표시된 제어 문자를 찾습니다. 예를 들어 \cM은 Control-M이나 캐리지 리턴 문자를 찾습니다. x의 값은 A-Z이나 a-z의 범위에 있어야 합니다. 범위를 벗어나면 c는 리터럴 'c' 문자로 간주됩니다.
\d 숫자를 찾습니다. [0-9]에 해당합니다.
\D 숫자가 아닌 문자를 찾습니다. [^0-9]에 해당합니다.
\f 용지 공급 문자를 찾습니다. \x0c와 \cL에 해당합니다.
\n 줄 바꿈 문자를 찾습니다. \x0a와 \cJ에 해당합니다.
\r 캐리지 리턴 문자를 찾습니다. \x0d와 \cM에 해당합니다.
\s 공백, 탭, 용지 공급 등을 비롯한 모든 공백 문자를 찾습니다. [\f\n\r\t\v]에 해당합니다.
\S 공백이 아닌 문자를 찾습니다. [^ \f\n\r\t\v]에 해당합니다.
\t 탭 문자를 찾습니다. \x09와 \cI에 해당합니다.
\v 세로 탭 문자를 찾습니다. \x0b와 \cK에 해당합니다.
\w 밑줄을 비롯한 모든 문자를 찾습니다. '[A-Za-z0-9_]'에 해당합니다.
\W 비단어 문자를 찾습니다. '[^A-Za-z0-9_]'에 해당합니다.
\xn n을 찾는데, 여기서 n은 16진수 이스케이프 값입니다. 16진수 이스케이프 값은 정확히 두 자리 수입니다. 예를 들어, '\x41'은 "A"를 찾습니다. '\x041'은 '\x04' & "1"에 해당합니다. ASCII 코드가 정규식에 사용될 수 있습니다.
\num num을 찾는데, 여기서 num은 양의 정수입니다. 캡처된 일치에 대한 역참조입니다. 예를 들어, '(.)\1'은 두 개의 연속된 동일 문자를 찾습니다.
\n 8진수 이스케이프 값이나 역참조 중 하나를 식별합니다. \n 앞에 n개 이하의 캡처된 부분식이 오면 n은 역참조입니다. 그렇지 않고 n이 8진수(0-7)이면 n은 8진수 이스케이프 값입니다.
\nm 8진수 이스케이프 값이나 역참조 중 하나를 식별합니다. \nm 앞에 nm개 이하의 캡처된 부분식이 오면 nm은 역참조입니다. \nm 앞에 n개 이하의 캡처가 오면 n은 뒤에 리터럴 m이 오는 역참조입니다. 처리 조건이 없으면 \nm은 n과 m이 8진수(0-7)일 때 8진수 이스케이프 값 nm을 찾습니다.
\nml n이 8진수(0-3)이고 m과 l이 8진수(0-7)인 8진수 이스케이프 값 nml을 찾습니다.
\un n을 찾는데, 여기서 n은 네 자리 16진수로 표현된 유니코드 문자입니다. 예를 들어 \u00A9는 저작권 기호(ⓒ)를 찾습니다.

원본 내용 출처 : http://msdn.microsoft.com/ko-kr/library/ae5bf541(v=vs.90).aspx (일부 수정)
제목 글쓴이 날짜
[해결됨]첨부파일 등록이 안될때 (플래시 플레이어 버전문제) [29] [1] file 똑디 2008.10.27
1.0.6 업데이트 후 링크 이미지 썸네일 문제 임시해결방법 [4] 라조 2008.10.27
카페24 계정 사용 중에 제로보드XE 로그인 오류가 날 때 [1] vltm 2008.10.24
개인 웹서버 백업 및 게시물 등록 날짜 수정 방법 [10] file eunbini 2008.10.24
첨부파일 문제땜에 고생하는 분들께 [8] 좀비이 2008.10.23
단일 Windows PC에 다중 버전 IE 설치하기 [5] NetEagle 2008.10.22
IE의 특정 도메인 인터넷 임시 파일 Cache만 삭제하기 [3] NetEagle 2008.10.22
cafe24사용자중 페이지에서 위젯편집시 자바스크립트 에러나시는 분들 [8] 팔공산 2008.10.17
자체 서버에서 제로보드 인스톨하실때 계속 초기화면 가시는 분을 위한 팁!!! file ♡바다.. 2008.10.16
꼬리표(태그) 목록 출력 위젯을 전체게시판에 대응하도록 수정하기 [1] 뽀연짱 2008.10.15
zbXE 1.0.6 일본어 팩 입니다~ [8] file 쿠로쿠마 2008.10.15
게시글 등록시 ''제목색깔''과 ''제목굵게'' 기능을 일반 사용자들에게도 주자. [5] 비나무 2008.10.15
제로보드(zbxe) 설치 후 로그인 안되는 문제. [3] sophistlv.myid.net 2008.10.15
UTF-8에서 호환되는 사랑비 BGM 올립니다. [8] file 로로아 2008.10.15
진행 표시줄에 떠다니는 글 넣기 [2] 부안프로그래밍 2008.10.14
제로보드XE가입 -> 트랙자동가입 기능 개돌 2008.10.14
통합검색에서 확장변수 검색하기 [5] StyleD 2008.10.12
확장변수 별로 작성 및 열람 권한 설정하기 [7] 대암지기 2008.10.11
게시판 목록을 확장 변수로 정렬하기 [5] 대암지기 2008.10.10
상단메뉴 레이어메뉴 위치 디테일하게 조정하기 [1] file HomeBox™ 2008.10.10