'정규표현식'에 해당되는 글 2건

  1. 2008.10.30 엑셀에서 VBScript의 정규표현식 사용하기
  2. 2007.12.01 정규표현식 - HTML에서 링크 뽑아내기
나눠주기/Program2008.10.30 11:41

매우 유용한 정규표현식을 Excel에서 사용해 보도록 하자.

우선 Excel을 실행한다.

ALT + F11을 클릭하여 Microsoft Visual Basic Editor를 실행한다.

도구 > 참조 를 클릭하여 Microsoft VBScript Regular Expressions 5.5를 선택한다.

삽입 > 모듈을 클릭하여 모듈을 추가한다.

추가한 모듈에 아래의 스크립트를 삽입한다.


'Match
Function regExpMatch(Value As String, Pattern As String, Optional IgnoreCase As Boolean = False)
    Dim r As New VBScript_RegExp_55.RegExp
    r.Pattern = Pattern
    r.IgnoreCase = IgnoreCase
    If r.Test(Value) Then
        regExpMatch = True
    Else
        regExpMatch = False
    End If
End Function

'Replace
Function regExpReplace(Value As String, Pattern As String, ReplaceWith As String, Optional IgnoreCase As Boolean = False)
    Dim r As New VBScript_RegExp_55.RegExp
    r.Pattern = Pattern
    r.IgnoreCase = IgnoreCase
    r.Global = True
    regExpReplace = r.Replace(Value, ReplaceWith)
End Function


함수에서 Optional 인자로 IgnoreCase가 있는데 이것은 대소문자 구별 유무를 의미한다.

사용법은 예제 이미지를 참조하길 바란다.

사용예제


사용자 삽입 이미지


이를 이용하여 삽질을 줄이기 바란다. (또 다른 삽질에 유의하도록!)

신고
Posted by mysnyc
삽질하기/JAVA2007.12.01 12:50

태그의 대소문자 구분은 하지 않으므로 대소문자를 모두 지원하기 위해서는String.toLowerCase(str)를 먼저 사용해야 한다.

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegularExpressionEx01 {
   public static void main(String[] args) {
      String str = "<a href = 'http://naver.com/' alt=\"\">";
      String regEx = "<(?:a|frame|iframe)\\s+[\\p{Alnum}\\s=\"\'_]*(?:href|src)\\s*=\\s*(?:\"|\')?([^\"|^\'|^>|^\\s]+)(?:\"|\'|\\s)?[^>]*>";

      Pattern pattern = Pattern.compile(regEx);
      Matcher match = pattern.matcher(str);
     
      if(match.find()) {
         System.out.println("Group Count : " + match.groupCount());
         System.out.println(match.group(0));
         System.out.println(match.group(1));
      }
   }
}

*
위 정규표현식은 완벽하지 않으므로 단순 참고용으로 사용하길 바란다.
*추천사이트 http://htmlparser.sourceforge.net/ , http://jtidy.sourceforge.net/

신고
Posted by mysnyc

티스토리 툴바