VBScript-정규식
정규식은 패턴을 형성하는 일련의 문자로, 주로 검색 및 바꾸기에 사용됩니다. 패턴을 만드는 목적은 개발자가 조건에 따라 문자를 추출하고 특정 문자를 대체 할 수 있도록 특정 문자열을 일치시키는 것입니다.
RegExp 개체
RegExp 개체는 개발자가 문자열 패턴을 일치시키는 데 도움이되며 속성 및 메서드는 정규식을 쉽게 사용할 수 있도록 도와줍니다. JavaScript의 RegExp와 유사합니다.
속성
Pattern − Pattern 방식은 정규식을 정의하는 데 사용되는 문자열을 나타내며 정규식 객체를 사용하기 전에 설정해야합니다.
IgnoreCase− true 또는 false 인 경우 문자열의 가능한 모든 일치에 대해 정규식을 테스트해야하는지 여부를 나타내는 부울 속성. 명시 적으로 지정하지 않으면 IgnoreCase 값이 False로 설정됩니다.
Global− 정규식이 문자열의 모든 가능한 일치에 대해 테스트되어야하는지 여부를 나타내는 부울 속성. 명시 적으로 지정하지 않으면 전역 값이 False로 설정됩니다.
행동 양식
Test(search-string) − Test 메서드는 문자열을 인수로 사용하고 정규식이 문자열과 성공적으로 일치 할 수 있으면 True를 반환하고 그렇지 않으면 False를 반환합니다.
Replace(search-string, replace-string) − Replace 메서드는 2 개의 매개 변수를 사용합니다. 검색이 성공하면 일치하는 문자열을 replace-string으로 바꾸고 새 문자열을 반환합니다. 일치하는 항목이 없으면 원래 검색 문자열이 반환됩니다.
Execute(search-string) − Execute 메서드는 각 성공적인 일치에 대해 Match 개체를 포함하는 Matches 컬렉션 개체를 반환한다는 점을 제외하면 Replace와 같이 작동합니다. 원래 문자열을 수정하지 않습니다.
컬렉션 개체와 일치
Matches 컬렉션 개체는 Execute 메서드의 결과로 반환됩니다. 이 컬렉션 개체는 0 개 이상의 Match 개체를 포함 할 수 있으며이 개체의 속성은 읽기 전용입니다.
Count − Count 메서드는 컬렉션의 일치 개체 수를 나타냅니다.
Item − Item 메서드를 사용하면 매치 컬렉션 개체에서 매치 개체에 접근 할 수 있습니다.
개체 일치
Match 개체는 match 컬렉션 개체 내에 포함됩니다. 이러한 개체는 문자열 검색 후 성공적인 일치를 나타냅니다.
FirstIndex− 일치가 발생한 원래 문자열 내 위치를 나타냅니다. 이 인덱스는 0부터 시작하므로 문자열의 첫 번째 위치가 0입니다.
Length − 일치하는 문자열의 총 길이를 나타내는 값.
Value− 일치하는 값 또는 텍스트를 나타내는 값. Match 개체에 액세스 할 때의 기본값이기도합니다.
패턴 매개 변수에 관한 모든 것
패턴 구축은 PERL과 유사합니다. 패턴 구축은 정규 표현식으로 작업하는 동안 가장 중요한 것입니다. 이 섹션에서는 다양한 요소를 기반으로 패턴을 만드는 방법을 다룹니다.
위치 매칭
위치 일치의 중요성은 정규 표현식을 올바른 위치에 배치하는 것입니다.
상징 | 기술 |
---|---|
^ | 문자열의 시작 부분 만 일치합니다. |
$ | 문자열의 끝만 일치합니다. |
\비 | 모든 단어 경계와 일치 |
\비 | 비 단어 경계와 일치 |
리터럴 매칭
알파벳, 숫자 또는 특수 문자 또는 십진수, 16 진수와 같은 모든 형식의 문자는 리터럴로 처리 할 수 있습니다. 정규식 컨텍스트 내에서 이미 특별한 의미를 가진 문자가 거의 없으므로 이스케이프 시퀀스를 사용하여 이스케이프해야합니다.
상징 | 기술 |
---|---|
영숫자 | 알파벳 및 숫자 만 일치합니다. |
\엔 | 새 줄과 일치합니다. |
\ [ | 일치 [리터럴 만 |
\] | 일치] 리터럴 만 |
\ ( | 일치 (리터럴 만 |
\) | 일치) 리터럴 만 |
\티 | 가로 탭과 일치 |
\V | 수직 탭과 일치 |
\ | | 일치 | 리터럴 만 |
\ { | {리터럴 만 일치 |
\} | } 리터럴 만 일치 |
\\ | \ 리터럴 만 일치 |
\? | 일치? 리터럴 만 |
\ * | * 리터럴 만 일치 |
\ + | 일치 + 리터럴 만 |
\. | 일치합니다. 리터럴 만 |
\비 | 모든 단어 경계와 일치 |
\비 | 비 단어 경계와 일치 |
\에프 | 양식 피드와 일치 |
\아르 자형 | 캐리지 리턴과 일치 |
\트리플 엑스 | 8 진수 xxx의 ASCII 문자와 일치합니다. |
\ xdd | 16 진수 dd의 ASCII 문자와 일치합니다. |
\ uxxxx | UNICODE 리터럴 xxxx의 ASCII 문자와 일치합니다. |
캐릭터 클래스 매칭
문자 클래스는 사용자 정의 그룹화에 의해 형성되고 [] 중괄호로 묶인 패턴입니다. 목록에 없어야하는 문자 클래스를 예상하는 경우에는 캡 ^ 인 음수 기호를 사용하여 특정 문자 클래스를 무시해야합니다.
상징 | 기술 |
---|---|
[xyz] | 문자 집합에 포함 된 모든 문자 클래스와 일치합니다. |
[^ xyz] | 문자 집합에 포함되지 않은 모든 문자 클래스와 일치합니다. |
. | \ n을 제외한 모든 문자 클래스와 일치합니다. |
\ w | 모든 단어 문자 클래스와 일치합니다. [a-zA-Z_0-9]와 동일 |
\ W | 단어가 아닌 문자 클래스와 일치합니다. [^ a-zA-Z_0-9]와 동일 |
\디 | 모든 숫자 클래스와 일치합니다. [0-9]와 같습니다. |
\디 | 숫자가 아닌 문자 클래스와 일치합니다. [^ 0-9]와 같습니다. |
\에스 | 공백 문자 클래스와 일치합니다. [\ t \ r \ n \ v \ f]와 동일 |
\에스 | 공백 문자 클래스와 일치합니다. [^ \ t \ r \ n \ v \ f]와 동일 |
반복 매칭
반복 일치는 정규 표현식 내에서 여러 검색을 허용합니다. 또한 정규식에서 요소가 반복되는 횟수를 지정합니다.
상징 | 기술 |
---|---|
* | 지정된 정규식의 0 개 이상의 발생과 일치합니다. {0,}와 같습니다. |
+ | 주어진 정규식의 하나 이상의 발생과 일치합니다. {1,}에 해당합니다. |
? | 주어진 정규식의 0 개 또는 1 개의 발생과 일치합니다. {0,1}과 같습니다. |
{엑스} | 주어진 정규식의 정확히 x 개의 발생 횟수와 일치합니다. |
{엑스,} | 주어진 정규식의 최소 x 개 이상의 발생과 일치합니다. |
{x, y} | 주어진 정규식의 발생 횟수를 x에서 y로 찾습니다. |
대체 및 그룹화
대체 및 그룹화는 개발자가 특히 정규식 내에서 복잡한 절을 처리 할 때보다 복잡한 정규식을 생성하는 데 도움이되며 이는 뛰어난 유연성과 제어를 제공합니다.
상징 | 기술 |
---|---|
0 | 절을 만들기 위해 절을 그룹화합니다. "(xy)? (z)"는 "xyz"또는 "z"와 일치합니다. |
| | 대체는 하나의 정규식 절을 결합한 다음 개별 절 중 하나와 일치합니다. "(ij) | (23) | (pq)"는 "ij", "23"또는 "pq"와 일치합니다. |
정규식 작성
다음은 정규 표현식을 작성하는 방법을 명확하게 설명하는 몇 가지 예입니다.
정규식 | 기술 |
---|---|
"^ \ s * .."및 ".. \ s * $" | 한 줄에 임의의 수의 선행 및 후행 공백 문자가있을 수 있음을 나타냅니다. |
"((\ $ \ s?) | (# \ s?))?" | 선택적 $ 또는 # 기호 다음에 선택적 공백을 나타냅니다. |
"((\ d + (\. (\ d \ d)?)?))" | 하나 이상의 숫자가 있고 그 뒤에 선택적 소수와 소수 뒤에 두 자리가 있음을 나타냅니다. |
예
아래 예제는 사용자가 이메일 ID 다음에 '@'가 있고 뒤에 도메인 이름이 오는 형식이 일치해야하는 이메일 ID를 입력했는지 여부를 확인합니다.
<!DOCTYPE html>
<html>
<body>
<script language = "vbscript" type = "text/vbscript">
strid = "[email protected]"
Set re = New RegExp
With re
.Pattern = "^[\w-\.]{1,}\@([\da-zA-Z-]{1,}\.){1,}[\da-zA-Z-]{2,3}$"
.IgnoreCase = False
.Global = False
End With
' Test method returns TRUE if a match is found
If re.Test( strid ) Then
Document.write(strid & " is a valid e-mail address")
Else
Document.write(strid & " is NOT a valid e-mail address")
End If
Set re = Nothing
</script>
</body>
</html>