티스토리 뷰

Programming/.Net

C# 정규식 사용방법

Rusi(루시) 2010. 9. 2. 17:50
반응형
출처 : http://cutecars.tistory.com/category

정규 표현식은 책으로도 1권 될 정도로 분량도 많고 복잡하기도 하고 나에겐 매우 어렵다..ㅡ,.ㅡ;

그래서 네이년한테 물어봤더니 쫘~~~~악~~ 그것도 한글로 나오는데 읽어도 읽어도 당췌 뭔소린지

알수가 없다...ㅡ,.ㅡ;;;; 고로 거창하게는 아니고 그냥 프로젝트하다가 적용한 사례 정도만 나중에 혹시

사용할일이 있지 않을까해서 정리해논다(사실 정리 안됨..ㅡ,.ㅡ;;)

본인은 C, C++이 주 언어지만(그렇다고 절대로!! 잘하는건 아님) C#코드로 구현했기 때문에
 
개발자답게(?) 고대로 Copy & Paste와 간단한 설명을 남긴다.

참고로 C#인지 닷넷인지뭔지 몰라도 이놈은 정규식을 완벽히 지원한단다.


using System.Text.RegularExpressions

bool IsVaildStr(string strText)
{
     string Pattern = @"^[a-zA-Z0-9가-힣]*$";
     return Regex.IsMatch(strText, Pattern);
}

간단히 설명하자면 strText의 문자열이 대-소문자 알파벳, 숫자, 한글인지를 체크하는 정규식이다
유저 계정 만들때 사용한 정규식인데 아이디에 특수문자를 사용할수 없게끔하는 식이다
특이하게 한글이 들어간 이유는 모 포탈 사이트에서는(한게임인가로 기억됨...아님 말고...^^)
한글 계정도 지원한다기에 그냥 넣어봤다

자세한 내용은 아래 설명 참조!


※ 정규식 설명 

^
입력의 시작 위치를 의미한다. 여러 줄 모드에서는 줄바꿈 뒤도 의미한다
/^A/
"An A"에서 시작 위치 바로 뒤의 A는 일치하지만 마지막의 A는 일치하지 않는다. 
^[a-z]
 첫 글자는
 반드시 소문자 a-z 사이의 문자를 뜻한다

$
입력의 마지막 위치를 의미한다. 여러 줄 모드에서는 줄바꿈 앞도 의미한다.
/a$/
"Cocoa"에서 마지막에 있는 'a'와 일치한다.
[a-z]$
마지막 글자는 반드시 소문자 a-z사이의 문자를 뜻한다

*
* 앞의 문자가 0번 이상 반복됨을 의미한다.

선택 기호: "|" 기호는 여러 식 중에서 하나를 선택한다.
 "abc|adc"는 abc라는 문자열과 adc라는 문자열을 모두 포함한다.

묶기 기호: (와 )로 여러 식을 하나로 묶을 수 있다.
 "abc|adc"와 "a(b|d)c"는 같은 의미를 가진다. 

[] : [과 ] 사이의 문자 중 하나를 선택한다. "|"를 여러 개 쓴 것과 같은 의미를 가진다. 
[abc]d는 ad, bd, cd를 뜻한다. 또한, "-" 기호와 함께 쓰면 문자의 범위를 지정할 수 있다.
[a-z]는 a부터 z까지 중 하나, [1-9]는 1부터 9까지 중의 하나를 뜻한다.

[^] : [^과 ]  사이의 문자를 제외한 나머지 하나를 선택한다. 
[^abc]d는 ad, bd, cd는 포함하지 않고 ed, fd 등을 포함한다.
[^a-z]는 알파벳 소문자로 시작하지 않는 모든 문자를 나타낸다. 


※ POSIX 문자 그룹(character Classes)

  • [:lower:]   : 소문자 알파벳 문자
  • [:upper:]   : 대문자 알파벳 문자
  • [:digit:]     : 숫자(Numeric digits)
  • [:alnum:]   : 숫자와문자(alphanumeric 문자)
  • [:space:]  : 공백문자(carriage return, newline, vetical tab, form feed)
  • [:punct:]   : 구두점(Punctuation 문자)
  • [:cntl:]     : control 문자
  • [:print:]    : Printable 문자
  • 반응형
    공지사항