C# 정규식 기호표 (Regular Expression) |
||
Pattern |
Matching Criterion |
Example |
+ |
앞의 글자에 연달아서, 뒤에 글자가 붙어서 따라 오는경우 |
to+ 는 too, tooo 처럼 |
* |
바로 앞의 글자가 없거나, 또는 바로앞글자가 있고 뒤에 글자가 따라올때 |
to* 는 t, to, too 처럼 바로앞의 글자생략까지 포함 |
? |
바로 앞의 글자가 없거나 있는경우 |
te?n 는 ten or tn 임. |
{n} |
n의수(입력된 숫자)만큼 정확하게 앞글자를 반복한다. |
te{2}n 은 teen이다. ten 이나 teeen 은 포함안됨 |
{n,} |
n의수(입력된 숫자) 이하 만큼 반복 해준다 |
te{1,}n 은 ten 이나 teen 이다. tn은 포함안됨. |
{n,m} |
n 과 m 사이의수(입력한 두수의 차이)만큼 앞 글자를 반복 |
te{1,2}n 은 ten 이나 teen 이다 |
\ |
슬래쉬 듸에 오는 (+, *, 와 ?처럼) 특수한 의미를 가진 문자가 오면 그대로 처리하라는 의미 |
A\+B 과 A+B는 동일한의미. |
\d \D |
(\d)는 숫자 (\D)는 숫자가 아닌 글자를 말함. 전자는[0-9], 후자는[^0-9] 일치 함 |
\d\d 는 55 로, \D\D 는 xx로 |
\w \W |
(\w)는 문자를(밑줄이나 괄호등 까지 포함), (\W)은 문자가 아닌글을 말함. |
A_19 은
\w\w\w\w 이고 |
\n \r \t \v \f |
순서대로, 다음줄로 넘어가기, 그줄의 첫번째로 돌아가기, 가로 탭, 세로 탭, 피드 |
|
\s \S |
(\s)는 빈공간을 (\S)는 빈공간이 아닌 글자로 채워진 공간을 말함 |
\w\s\w\s\w 는 A B C 처럼 문자 네개 공백두개 |
. (dot) |
. (마침표)는 한글자인 문자를 대표하는 기호. 문자 가운데 \n는 인식못함 |
a.c 의 예는 abc. |
| |
논리기호 OR의 의미. |
"in|en" matches enquiry. |
[. . . ] |
괄호 안에 있는 문자 중에 있는 하나의 문자(알파벳, 점은 문자를 의미함) |
[aeiou] 는 u(또는 각각 a, e, i, o 모두가능). [\d\D]는 하나의 숫자나 숫자가 아닌글 |
[^. . .] |
괄호 안에 없는 하나의 문자(알파벳) |
[^aeiou] matches x. |
string txt ="Monday Hi:88 Lo:56 Tuesday Hi:91 Lo:61"; string rgPatt = @"( ?[a-zA-Z]+)\s*(? Hi:\d+\s*Lo:\d+)"; // 그룹명은 위에서 처럼 ?<그룹명> 으로 명명 해주고 MatchCollection mc = Regex.Matches(txt, rgPatt); // 스트링값과 정규식을 mc 그룹으로 묶어준후에 foreach(Match m in mc) // mc그룹안의 그룹 하나 하나를 m으로 명명해주고 { Console.WriteLine("{0} {1}", m.Groups["day"],m.Groups["temps"]); //m의 그룹을 위에서 지정해준 이름으로 불러옴. m.Groups["그룹명"] } //출력하면 Monday Hi:88 Lo:56 // Tuesday Hi:91 Lo:61
숫자 값만 리턴 하는 정규식 예
protected string NumNull(string data) { if (string.IsNullOrEmpty(data)) return "0"; else { Regex reg = new Regex(@"[^\d]+"); if (reg.IsMatch(data)) return data; else throw new Exception("숫자 값이 필요한 곳에 문자열이 존재합니다. 오류자료 : " +data); } }
기타 추가 예제
//문자열이 숫자 형식인지를 확인하는 함수 public bool IsNumber(string strValue) { if (strValue == null || strValue.Length < 1) return false; //요기서 정규식 사용 Regex reg = new Regex(@"^(\d)+$"); return reg.IsMatch(strValue); } // 문자열이 알파벳으로만 구성되어 있는지를 확인하는 함수 public bool IsAlpabet(string strValue) { if (strValue == null || strValue.Length < 1) return false; Regex reg = new Regex(@"^[a-zA-Z]+$"); return reg.IsMatch(strValue); } //시작문자열이 알파벳이고, 알파벳과 숫자로 이루어진 문자열인지 여부 확인하는 함수 public bool IsAlpaNumber(string strValue) { if (strValue == null || strValue.Length < 1) return false; Regex reg = new Regex(@"^[a-zA-Z]+[0-9]*$"); return reg.IsMatch(strValue); }
'Microsoft > C# & ASP.NET' 카테고리의 다른 글
CultureInfo 를 이용환 화폐 콤마 처리 (0) | 2012.11.03 |
---|---|
ajax 기본구조 (0) | 2012.10.29 |
리플렉션을 이용한 동적 코드 생성 (0) | 2012.09.25 |
asp.net Callback (0) | 2012.09.21 |
SQL 서버를 이용한 ASP.NET 세션관리[펌] (0) | 2012.09.19 |