참고. 특정한 패턴을 가진 문자열을 찾아내는데 유용한 테크닉.
특히 XML, HTML 파싱에 매우 편리하다.
라이브러리 추가.
using System.Text.RegularExpressions;
// 정규식 사용 예제.
// HTML 소스내에서 !DOCTYPE 부분을 찾을때
string FileString = "아래의 정규식을 찾을 데이터 원본";
Regex pDocType = new Regex(@"[<]!DOCTYPE [\w\W]*?[>]");
Match mDocType = pDocType.Match(FileString);
// 예제2.
// 특정텍스트들 내에서 #ShortKeyword 가 들어간 부분을 찾을때
// () 나 .*? 등의 기호는 본 블로그내에 정규식 기호를 설명한 21번 게시물 참조
> http://bananamandoo.tistory.com/21
string sFileBody = "아래의 정규식을 찾을 데이터 원본";
Regex rKeyword = new Regex(@"(#ShortKeyword)(\s)(.*?)\r\n"); //Keyword
Match mKeyword = rKeyword.Match(sFileBody, 0);
if (mKeyword.Success) sKeyword = mKeyword.Result("$3").Trim(); //$3은 위에서 정규식으로 검색한 () 세개중 세번째 항목을 리턴
else return; //추출실패시 리턴.
// 예제3
string sFileString = "아래의 정규식을 찾을 데이터 원본";
Regex rKeyword = new Regex(@"\W/conference/");
string sNewString = rKeyword.Replace(sFileString, "\"/");
Regex rInclude = new Regex(@"<!--#include virtual=(\W+)(/.*?)(/.*?) -->");
MatchCollection arrMatch = rInclude.Matches(sNewString);
foreach (Match mVal in arrMatch)
{
Console.Write("$1:" + mVal.Result("$1") + " $2: " + mVal.Result("$2") + " $3 : " + mVal.Result("$3") + "\r\n");
sNewString = sNewString.Replace(mVal.Value, "<?php include " + mVal.Result("$1").Replace('"', '\'') +
mVal.Result("$2").Replace('"', '\'') + mVal.Result("$3").Replace('"', '\'') + "; ?>");
}
//예제4.
string sText = "아래의 정규식을 찾을 데이터 원본";
sText = Regex.Replace(sText, @"\d(동|리)", "$1");
'C Sharp' 카테고리의 다른 글
C#, TEXTBOX 숫자만 입력받기 (0) | 2015.04.04 |
---|---|
C# EUCKR, UTF-8 변환 (2) | 2015.04.03 |
C#, Stringformat, 숫자표시 포맷, 통화표시 (0) | 2015.03.26 |
C#, Thread.sleep 대신 사용하기 좋은 함수 Delay (7) | 2015.03.25 |
효율성에 관한 잡설. C# VS C++ (0) | 2015.03.24 |