g는 글로벌 매치(Global Match)를 의미합니다.
m은 여러 줄이 일치할 수 있음을 의미합니다.
i는 대소문자를 구분하지 않는 일치를 나타냅니다.
^는 입력 문자열의 시작과 일치합니다.
$는 입력 문자열의 끝과 일치합니다.
* 이전 하위 표현식과 0회 이상 일치합니다. {0,}과 동일합니다.
+ 이전 하위 표현식과 하나 이상 일치합니다. {1,}
? 이 문자 뒤에 다른 한정자(*, +, ?, {n}, {n,}, {n, m})가 오면 이전 하위 표현식과 일치합니다. 패턴은 욕심이 없습니다. Non-greedy 모드는 검색된 문자열을 최대한 적게 일치시키는 반면, 기본 Greedy 모드는 검색된 문자열을 최대한 많이 일치시킵니다. 예를 들어, 문자열 "oooo"의 경우 'o+?'는 단일 "o"와 일치하고 'o+'는 모든 'o'와 일치합니다.
d는 숫자 [0-9]와 일치합니다.
D는 숫자가 아닌 문자와 일치합니다. [^0-9]
w , "[A-Za-z0-9_]"와 동일
W는 "[^A-Za-z0-9]"에 해당하는 단어가 아닌 문자와 일치합니다.
s는 공백, 탭, 폼 피드 등을 포함한 모든 공백 문자와 일치합니다. [fnrtv]와 동일합니다.
S는 공백이 아닌 모든 문자와 일치합니다. [^frntv]
b는 단어와 공백 사이의 위치인 단어 경계와 일치합니다.
B는 단어가 아닌 경계와 일치합니다.
(패턴)은 패턴과 일치하고 일치 항목을 가져옵니다. 얻은 일치 항목은 VBScript의 SubMatches 컬렉션 또는 JScript의 $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"는 일치하지 않습니다.
사전 검사는 문자를 소비하지 않습니다. 즉, 일치가 발생한 후 사전 검사를 포함하는 문자 뒤의 2-4개의 한자
프로그램 코드
일치를시작하는 대신 마지막 일치 직후 다음 일치 항목에 대한 검색이 시작됩니다
.
/^[u4e00-u9fa5]{2,4}$/g;
6~18개(문자, 숫자, 밑줄) 문자
프로그램 코드
와 일치
/^w{6,18}$/;
프로그램 코드
/^[A-Za-z0-9_]$/;
HTML 태그
프로그램 코드
일치
/<[^>]*>|</[^>]*>/gm;
프로그램 코드
/</?[^>]+>/gm;
왼쪽과 오른쪽 공백
프로그램 코드를
일치시키세요.
/(^s*)|(s*$)/g;
우선순위(높은 것에서 낮은 것 순)
이스케이프 문자
(),(?:),(?=),[] 둥근 괄호 및 대괄호
* , + , ? , {n} , {n,} , {n,m} 한정자
^ , [vapour:content]nbsp; 위치 및 순서
| "또는" 연산은
두 개의 연속된 동일한 단어
프로그램 코드
와 일치합니다.
/b([az]+) 1b/gim ;
이 예에서 하위 표현식은 괄호 사이의 각 용어입니다.
캡처된 표현식은 '[az]+'로 지정된 하나 이상의 영문자로 구성됩니다.
정규식의 두 번째 부분은 이전에 캡처된 부분 일치에 대한 참조이며, 이는 추가된 표현식과 일치하는 단어의 두 번째 발생입니다.
'1'은 첫 번째 부분 일치를 지정하는 데 사용됩니다. 단어 경계 메타 문자는 개별 단어만 감지되도록 합니다.
이것이 수행되지 않으면 "발급됨" 또는 "이것은"과 같은 문구가 표현식에서 잘못 인식됩니다.
프로그램 코드
var ss = "휘발유 가격이 오르나요?. 휘발유 가격이 오르나요?.";
var re = /b([az]+) 1b/gim;
var rv = ss.replace(re,"$1");
document.write(rv) //출력 "휘발유 가격이 오르나요?. 휘발유 가격이 오르나요?. "
프로그램 코드
/bCha/
는 단어 경계 뒤에 나타나기 때문에 'Chapter'라는 단어의 처음 세 문자와 일치합니다.
프로그램 코드
/terb/
는 단어 경계 앞에 나타나기 때문에 'Chapter'라는 단어의 'ter'와 일치합니다.
프로그램 코드
/Bapt/는
'Chapter' 중간에 있으므로 'apt'와 일치하지만 단어 경계 뒤에 있기 때문에 'aptitude'의 'apt'와 일치하지 않습니다.
*/
URL 주소
프로그램 코드
일치
/(w+)://([^/:]+)(:d*)?([^#]*)/
다음 URI를 프로토콜(ftp, http 등)로 분해, 도메인 이름 주소 및 페이지/경로:
http://msdn.microsoft.com:80/scripting/default.htm
첫 번째 추가 하위 표현식은 웹 주소의 프로토콜 부분을 캡처하는 데 사용됩니다. 이 하위 표현식은 앞에 콜론과 두 개의 슬래시가 오는 모든 단어와 일치합니다. 두 번째 추가 하위 표현식은 주소의 도메인 주소를 캡처합니다. 이 하위 표현식은 '^', '/' 또는 ':' 문자를 포함하지 않는 모든 문자 시퀀스와 일치합니다. 세 번째 추가 하위 표현식은 지정된 경우 웹 사이트 포트 번호를 캡처합니다. 이 하위 표현식은 콜론이 뒤에 오는 0개 이상의 숫자와 일치합니다. 마지막으로 네 번째 추가 하위 표현식은 웹 주소로 지정된 경로 및/또는 페이지 정보를 캡처합니다. 이 하위 표현식은 '#' 또는 공백을 제외한 하나 이상의 문자와 일치합니다.
위에 표시된 URI에 정규식이 적용되면 하위 일치 항목에는 다음이 포함됩니다.
RegExp.$1 포함 "http"
RegExp.$2 포함 "msdn.microsoft.com"
RegExp.$3 포함 ":80"
RegExp.$4
방법1
"/scripting/default.htm"
정규식을 포함합니다.
테스트 메서드는검색 중인 문자열에 패턴이 있는지 여부를 나타내는 부울 값을 반환합니다.
rgExp.test(str)
전역 RegExp 개체의 속성은 수정되지 않습니다. 테스트 방법
예시1
http://www.knowsky.com/
프로그램 코드
var url=" http://msdn.microsoft.com:80/scripting/default.html ";
var reg=/(w+)://([^/:]+)(:d*)?([^#]*)/;
var 플래그=reg.test(url);
플래그 //참을 반환
RegExp.$1 //"http"를 반환합니다.
RegExp.$2 //"msdn.microsoft.com"을 반환합니다.
RegExp.$3 //":80" 반환
$egExp.$4 //"/scripting/default.html"을 반환합니다.
검색 메서드나 테스트 메서드 모두 전역 RegExp 개체를 업데이트할 수 없으므로 RegExp.input, RegExp.index 및 RegExp.lastIndex는 정의되지 않은
2를 반환합니다. match 메서드는
정규식 패턴을 사용하여 문자열에 대한 검색을 수행하고 다음을 포함하는 결과를 반환합니다. 배열로 검색합니다.
프로그램 코드
stringObj.match(rgExp)
match 메서드가 일치 항목을 찾지 못하면 null을 반환합니다. 일치하는 항목이 발견되면 배열이 반환되고 전역 RegExp 개체의 속성이 일치 항목을 반영하도록 업데이트됩니다.
match 메소드에 의해 반환된 배열에는 input, index 및 lastIndex라는 세 가지 속성이 있습니다.
입력 속성에는 검색 중인 전체 문자열이 포함됩니다.
Index 속성에는 전체 검색 문자열 내에서 일치하는 하위 문자열의 위치가 포함됩니다.
LastIndex 속성에는 마지막 일치 항목의 마지막 문자 옆 위치가 포함됩니다.
전역 플래그(g)가 설정되지 않은 경우 배열의 요소 0에는 전체 일치 항목이 포함되고 요소 1~n에는 일치 항목에서 발생한 모든 부분 일치 항목이 포함됩니다.
이는 전역 플래그를 설정하지 않은 exec 메서드와 동일합니다. 전역 플래그가 설정된 경우 요소 0~n에는 모든 일치 항목이 포함됩니다.
example1(전역 플래그가 설정되지 않음)
프로그램 코드
var url=" http://msdn.microsoft.com:80/scripting/default.html ";
var reg=/(w+)://([^/:]+)(:d*)?([^#]*)/;
var myArray=url.match(reg);
RegExp.$1 //"http"를 반환합니다.
RegExp.$2 //"msdn.microsoft.com"을 반환합니다.
RegExp.$3 //":80" 반환
$egExp.$4 //"/scripting/default.html"을 반환합니다.
myArray //Return myArray[0]=" http://msdn.microsoft.com:80/scripting/default.html ",
myArray[1]="http",myArray[2]="msdn.microsoft.com",
myArray[3]=":80",myArray[4]="/scripting/default.html"
myArray.input //"http://msdn.microsoft.com:80/scripting/default.html"을 반환합니다.
myArray.index //0을 반환합니다.
myArray.lastIndex //51을 반환합니다.
예2(글로벌 플래그 세트)
프로그램 코드
var url=" http://msdn.microsoft.com:80/scripting/default.html ";
var reg=/(w+)://([^/:]+)(:d*)?([^#]*)/g;
var myArray=url.match(reg);
RegExp.$1 //"http"를 반환합니다.
RegExp.$2 //"msdn.microsoft.com"을 반환합니다.
RegExp.$3 //":80" 반환
$egExp.$4 //"/scripting/default.html"을 반환합니다.
myArray //return myArray=" http://msdn.microsoft.com:80/scripting/default.html "
myArray.input //"http://msdn.microsoft.com:80/scripting/default.html"을 반환합니다.
myArray.index //0을 반환합니다.
myArray.lastIndex //51을 반환합니다.
전역 플래그를 설정한 후 차이점에 유의하세요.
전역 플래그(g)가 설정되지 않은 경우 배열의 요소 0에는 전체 일치 항목이 포함되고 요소 1~n에는 일치 항목에서 발생한 모든 부분 일치 항목이 포함됩니다.
이는 전역 플래그를 설정하지 않은 exec 메서드와 동일합니다. 전역 플래그가 설정된 경우 요소 0부터 n까지 모든 일치 항목이 포함됩니다
. 3. exex 메소드는
정규식 패턴을 사용하여 문자열에 대한 검색을 실행하고 검색 결과가 포함된 배열을 반환합니다.
프로그램 코드
rgExp.exec(str)
exec 메소드가 일치하는 항목을 찾지 못하면 null을 반환합니다.
일치하는 항목을 찾으면 exec 메서드는 배열을 반환하고 전역 RegExp 개체의 속성은 일치 항목을 반영하도록 업데이트됩니다.
배열의 요소 0에는 완전한 일치 항목이 포함되고, 요소 1~n에는 일치 항목에서 발생하는 모든 부분 일치 항목이 포함됩니다.
이는 전역 플래그(g)를 설정하지 않은 match 방법과 동일합니다.
정규식에 대해 전역 플래그가 설정된 경우 exec는 lastIndex 값이 나타내는 위치를 찾기 시작합니다.
전역 플래그가 설정되지 않은 경우 exec는 lastIndex 값을 무시하고 문자열의 시작 부분부터 검색합니다.
exec 메소드에 의해 반환된 배열에는 input, index 및 lastIndex라는 세 가지 속성이 있습니다.
입력 속성에는 검색 중인 전체 문자열이 포함됩니다.
Index 속성에는 검색된 전체 문자열에서 일치하는 하위 문자열의 위치가 포함됩니다.
LastIndex 속성에는 일치 항목의 마지막 문자의 다음 위치가 포함됩니다.
example1(전역 플래그가 설정되지 않음)
프로그램 코드
var url=" http://msdn.microsoft.com:80/scripting/default.html ";
var reg=/(w+)://([^/:]+)(:d*)?([^#]*)/;
var myArray=reg.exec(url);
RegExp.$1 //"http"를 반환합니다.
RegExp.$2 //"msdn.microsoft.com"을 반환합니다.
RegExp.$3 //":80" 반환
$egExp.$4 //"/scripting/default.html"을 반환합니다.
myArray //Return myArray[0]=" http://msdn.microsoft.com:80/scripting/default.html ",
myArray[1]="http",myArray[2]="msdn.microsoft.com",
myArray[3]=":80",myArray[4]="/scripting/default.html"
myArray.input //"http://msdn.microsoft.com:80/scripting/default.html"을 반환합니다.
myArray.index //0을 반환합니다.
myArray.lastIndex //51을 반환합니다.
전역 플래그(g)가 설정되지 않은 경우 match 방법은 exec 방법과 동일합니다.
예2(전역 플래그 설정)
프로그램 코드
var url=" http://msdn.microsoft.com:80/scripting/default.html ";
var reg=/(w+)://([^/:]+)(:d*)?([^#]*)/;
var myArray=reg.exec(url);
RegExp.$1 //"http"를 반환합니다.
RegExp.$2 //"msdn.microsoft.com"을 반환합니다.
RegExp.$3 //":80" 반환
$egExp.$4 //"/scripting/default.html"을 반환합니다.
myArray //Return myArray[0]=" http://msdn.microsoft.com:80/scripting/default.html ",
myArray[1]="http",myArray[2]="msdn.microsoft.com",
myArray[3]=":80",myArray[4]="/scripting/default.html"
myArray.input //"http://msdn.microsoft.com:80/scripting/default.html"을 반환합니다.
myArray.index //0을 반환합니다.
myArray.lastIndex //51을 반환합니다.
4 검색 방법은
정규식 검색 내용과 일치하는 첫 번째 하위 문자열의 위치를 반환합니다.
프로그램 코드
stringOjb.search(rgExp)
검색 방법은 해당 일치 항목이 있는지 여부를 나타냅니다.
일치하는 항목이 발견되면 검색 메서드는 문자열 시작 부분부터 일치하는 항목의 오프셋을 나타내는 정수 값을 반환합니다.
일치하는 항목이 없으면 -1이 반환됩니다.
예1
프로그램 코드
var url=" http://msdn.microsoft.com:80/scripting/default.html ";
var reg=/(w+)://([^/:]+)(:d*)?([^#]*)/;
var 플래그=url.search(reg);
플래그 //0을 반환
RegExp.$1 //"http"를 반환합니다.
RegExp.$2 //"msdn.microsoft.com"을 반환합니다.
RegExp.$3 //":80" 반환
$egExp.$4 //"/scripting/default.html"을 반환합니다.
검색 방법이나 테스트 방법 모두 전역 RegExp 개체를 업데이트할 수 없으므로 RegExp.input, RegExp.index 및 RegExp.lastIndex는 정의되지 않은 값을 반환합니다.
5 바꾸기 메서드는
정규식을 기반으로 텍스트를 바꾼 후 문자열 복사본을 반환하고
전역 RegExp 개체를 업데이트할 수 있습니다.