사용자 도구

사이트 도구


kb:windowsscriptregularexpression

Windows Script Regular Expression

윈도우즈 스크립트에서 정규식을 사용해보아요

정규식을 사용하기 위해서는 스크립트 버전의 엔진이 5.0 이상이어야 한다. 스크립트 엔진의 버전은 간단히 확인할 수 있다.

WScript.Echo WScript.version

검색

검색에는 2가지 방법이 있다.

Test 함수는 단순히 해당 문자열이 있는지 없는지의 여부만을 반환한다.

StringToSearch = "http://www.foo.com"
 
Set RE = New RegExp
 
With RE
    .Pattern = ".com"
    .IgnoreCase = True
    .Global = True
End With
 
Match = RE.Test(StringToSearch)
 
If Match Then
    WScript.Echo RE.Pattern & " was found in " & StringToSearch
Else
    WScript.Echo RE.Pattern & " was not found in " & StringToSearch
End If
 
Set RE = nothing

Execute 함수는 일치하는 문자열과 그 위치를 반환한다.

StringToSearch = "ASP, asp, Asp"
 
Set RE = New RegExp
 
With RE
    .Pattern = "ASP"
    .IgnoreCase = False
    .Global = True
End With
 
Set MatchList = RE.Execute(StringToSearch)
 
If MatchList.Count > 0 Then
    For Each Match In MatchList
        WScript.Echo Match.Value & " was matched at position " & Match.FirstIndex
    Next
Else
    WScript.Echo RE.Pattern & " was not found in the string: " & StringToSearch
End If
 
Set RE = nothing

Match 객체는 FirstIndex, Length, Value, SubMatches 4개의 속성을 가진다. FirstIndex는 문자열의 시작 위치를 의미하고, Length는 문자열의 길이를 의미하며, Value는 일치하는 문자열을 나타낸다. SubMatches는 정규식이 그룹화되어 있는 경우, 각각의 그룹을 나타낸다. SubMatches.Count는 그룹의 숫자를 나타내고, 각각의 그룹 문자열은 SubMatches.Item(index) 함수를 통해 액세스할 수 있다.

치환

치환은 Replace 함수를 이용하면 된다.

InitialString = "www.foo.co.uk"
 
Set RE = New RegExp
 
With RE
    .Pattern = ".co.uk"
    .IgnoreCase = True
    .Global = True
End With
 
ReplacedString = RE.Replace(InitialString, ".com")
 
WScript.Echo "Replaced " & InitialString & " with " & ReplacedString
 
Set RE = nothing

링크

kb/windowsscriptregularexpression.txt · 마지막으로 수정됨: 2014/11/08 16:28 (바깥 편집)