VBS(Visual Basic Script)

[Visual Basic] 비주얼베이직 스크립트 (VBScript), 정규표현식 예제

안산드레아스 2023. 1. 24. 20:40
반응형

아래 정규표현식 예가 있으며, 입맛에 맞게 쓸 수 있다.

 

1.  [ ] 

 []사이의 문자들과 매치, [abc]의미는 문자열에서 a,b,c가 하나라도 들어가면 모두 찾음. 거꾸로 a,b,c가 하나도 없는것은 제외


2.  [a-e] 

하이픈 - 는 범위를 의미, a-e = abcde 를 의미. 마찬가지로 a,b,c,d,e가 들어간 문자열을 모두 찾음. 거꾸로 없으면 제외

 

3.  [a-zA-Z]

모든 알파벳을 의미, [0-9] : 모든 숫자를 의미, 


4.  ^

거꾸로(NOT)를 의미. 만약 [^abc]를 하면 a,b,c가 들어가지 않은 모든 문자를 찾음


5.  .        

모든문자를 의미, a.b 는 a와 b사이에 있는 모든문자를 의미


6. a[.]b    

의미는 문자열 그자체가 "a.b" 와 매칭되는 것을 찾음. 괄호내부에[.]있으므로,

마침표 문자 그 자체를 의미 (메타정보가 아님)


7.  *        

ca*t 는 a가 0번이상 반복되는 것을 찾음 (c와 t사이)


8.  +       

ca+t 는 a가 1번이상 반복되는 것을 찾음 c + a(1번 이상 반복) + t


9. ca{2}t   

c와 t사이, a가 반드시 2번 반복 


10. ca{2,5}t 

c와 t사이, a가 반드시 2번~5번 연속 나오는 것을 찾음


11. ab?c     

a와 c사이, b가 있어도되고, 없어도 됨

 

아래 VBscript를 이용한 정규표현식 예제 코드. 입맛에 맞게 변경해서 사용.

' []       : []사이의 문자들과 매치, [abc]의미는 문자열에서 a,b,c가 하나라도 들어가면 모두 찾음. 거꾸로 a,b,c가 하나도 없는것은 제외
' [a-e]    : 하이픈 - 는 범위를 의미, a-e = abcde 를 의미. 마찬가지로 a,b,c,d,e가 들어간 문자열을 모두 찾음. 거꾸로 없으면 제외
' [a-zA-Z] : 모든 알파벳을 의미, [0-9] : 모든 숫자를 의미, 
' ^        : 거꾸로(NOT)를 의미. 만약 [^abc]를 하면 a,b,c가 들어가지 않은 모든 문자를 찾음
' .        : 모든문자를 의미, a.b 는 a와 b사이에 있는 모든문자를 의미
' a[.]b    : 의미는 문자열 그자체가 "a.b" 와 매칭되는 것을 찾음. 괄호내부에[.]있으므로, 마침표 문자 그 자체를 의미 (메타정보가 아님)
' *        : ca*t 는 a가 0번이상 반복되는 것을 찾음 (c와 t사이)
' +        : ca+t 는 a가 1번이상 반복되는 것을 찾음 c + a(1번 이상 반복) + t
' ca{2}t   : c와 t사이, a가 반드시 2번 반복 
' ca{2,5}t : c와 t사이, a가 반드시 2번~5번 연속 나오는 것을 찾음
' ab?c     : a와 c사이, b가 있어도되고, 없어도 됨


' strid = "welcome.user@tutorialspoint.co.us"
strid = "welcome.user#tutorialspoint.co.us"

' 정규표현식 선언을 위한 오브젝트 불러오기
' with문 사용하기
' objRegExp.Pattern
' objRegExp.IgnoreCase <= 원래 이런식으로 써야 하지만, with문을 쓰면 아래와 같이 깔끔하게 가능.

Dim objRegExp : Set objRegExp = new Regexp
With objRegExp
   .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 objRegExp.Test( strid ) Then
   msgbox(strid & " is a valid e-mail address")
Else
   msgbox(strid & " is NOT a valid e-mail address")
End If

Set objRegExp = Nothing

 

반응형

 

활용 예제 코드.

정규표현식 중간에 특정 문자와 숫자가 들어갈 때 해당 줄(Line) 찾기

https://ansan-survivor.tistory.com/1869

 

[Visual Basic] 비주얼베이직 스크립트 (VBScript), 정규표현식 중간에 특정 문자와 숫자가 들어갈 때

특정 단어(문자)로 시작하는 String을 찾아 중간에 특정 문자와 숫자가 들어갈 때 해당 줄(Line) 찾기 결과) ph 가 들어가는 모든 줄을 출력 숫자는 정수이던 실수이던 모두 출력 그외 나머지는 Not Mat

ansan-survivor.tistory.com

 

정규표현식 특정 문자로 시작할 때 줄 (Line) 찾기

https://ansan-survivor.tistory.com/1868

 

[Visual Basic] 비주얼베이직 스크립트 (VBScript), 정규표현식 특정 문자로 시작할 때 줄 (Line) 찾기

특정 단어(문자)로 시작하는 String을 찾아 해당 단어가 있는 Line만 뽑아서 새로운 Text파일에 줄을 복사함. 결과) ep로 시작하고, nth로 시작하는 항목을 찾아서 해당 줄을 출력 그외 나머지는 Not Matc

ansan-survivor.tistory.com

 

파일에서 특정 문자열 추출하기 (export specific String )

https://ansan-survivor.tistory.com/1867

 

[Visual Basic] 비주얼베이직 스크립트 (VBScript), 파일에서 특정 문자열 추출하기 (export specific String )

어떤 data가 여러개가 섞여있는 데이터에서 특정 단어 String을 찾아 해당 단어가 있는 Line만 뽑아서 새로운 Text파일에 줄을 복사함. 코드 Dim objFSO, objFile Dim strData, strLine 'File System Object 생성 Set objFS

ansan-survivor.tistory.com

 

 

 

 

 

반응형