C# 정규식
.Net에서는 정규식을 위해 Regex 라는 클래스를 제공한다.
Regex 클래스는 System.Text.RegularExpressions 네임스페이스에 있다.
우선 전화번호는
\d 는 [0-9] 와 같은 표현식이며 실제로 전화번호는 전부 0으로 시작하기때문에 0 이라고 써도된다.
두번째 자리는 핸드폰의 경우는 모두 1 이므로 아래와 같이 수정할수 있다.
{n} 은 반복되는 횟수이다. \d 는 숫자라는 뜻이다.
첫번째 \d{3} 은 숫자가 3개 반복된다는 뜻이다.
대쉬 "-" 는 그대로 인식된다. \d{3,4} 는 숫자가 3자리에서 4자리라는 표현이다.
여기까지면 전화번호 표현은 끝이다.
첫번째 표현은 아래와 같이 다르게 표현할수 있다.
[0-9] 는 0에서 9 사이의 문자가 올수 있다는 뜻이다.
[0-9]{3} 는 0에서 9사이의 문자가 3번 반복된다는 뜻이다.
그럼, 아래 예제를 실행해보자.
위 정규표현식에서 $ 는 문자열의 마지막이라는 말이다. $를 지우고 다시 실행해보면 4번째 예제도 정규식에 부합된다고 나온다.
key = value 형식의 문자열에서 키와 값을 찾아서 사용하기 위해서는
위 정규식에서 ^는 문자열 가장 처음을 뜻한다. ^와 $를 지우고 해보면 4,5번은 invalid하다고 나올것이다.
더욱 많은 예제는
http://www.google.co.kr/#sclient=psy-ab&hl=ko&newwindow=1&site=&source=hp&q=c%23+regex+cheatsheet&pbx=1&oq=c%23+regex+cheatsheet&aq=f&aqi=&aql=1&gs_sm=e&gs_upl=761l761l0l1328l1l1l0l0l0l0l120l120l0.1l1l0&bav=on.2,or.r_gc.r_pw.&fp=e5fb3ac19a752789&biw=1920&bih=979
Regex 클래스는 System.Text.RegularExpressions 네임스페이스에 있다.
우선 전화번호는
Regex regex = new Regex(@"\d{3}-\d{3,4}-\d{4}");
\d 는 [0-9] 와 같은 표현식이며 실제로 전화번호는 전부 0으로 시작하기때문에 0 이라고 써도된다.
Regex regex = new Regex(@"0\d{2}-\d{3,4}-\d{4}");
두번째 자리는 핸드폰의 경우는 모두 1 이므로 아래와 같이 수정할수 있다.
Regex regex = new Regex(@"01\d-\d{3,4}-\d{4}");
{n} 은 반복되는 횟수이다. \d 는 숫자라는 뜻이다.
첫번째 \d{3} 은 숫자가 3개 반복된다는 뜻이다.
대쉬 "-" 는 그대로 인식된다. \d{3,4} 는 숫자가 3자리에서 4자리라는 표현이다.
여기까지면 전화번호 표현은 끝이다.
첫번째 표현은 아래와 같이 다르게 표현할수 있다.
Regex regex = new Regex(@"[0-9]{3}-[0-9]{3,4}-[0-9]{4}");
[0-9] 는 0에서 9 사이의 문자가 올수 있다는 뜻이다.
[0-9]{3} 는 0에서 9사이의 문자가 3번 반복된다는 뜻이다.
그럼, 아래 예제를 실행해보자.
static void Main(string[] args) { Regex regex = new Regex(@"\d{3}\-\d{3,4}\-\d{4}$"); string[] target = { "011-333-1234", "010-4442-4321", "032-333-2333", "123-1224-12345678", "000-33-33" }; foreach (string s in target) { Match m = regex.Match(s); if (m.Success) { Console.WriteLine(m.Value + " <- valid"); } else { Console.WriteLine(s + " <- invalid"); } } }
위 정규표현식에서 $ 는 문자열의 마지막이라는 말이다. $를 지우고 다시 실행해보면 4번째 예제도 정규식에 부합된다고 나온다.
key = value 형식의 문자열에서 키와 값을 찾아서 사용하기 위해서는
static void Main(string[] args) { Regex regex = new Regex(@"^\w+\s*=\s*\w+$"); string[] target = { "key1 = val1", "key2=val2", "key3= val3", " key4 = val4 ", " key5 = val5 " }; foreach (string s in target) { Match m = regex.Match(s); if (m.Success) { Console.WriteLine(m.Value + " <- valid"); } else { Console.WriteLine(s + " <- invalid"); } } }
위 정규식에서 ^는 문자열 가장 처음을 뜻한다. ^와 $를 지우고 해보면 4,5번은 invalid하다고 나올것이다.
더욱 많은 예제는
http://www.google.co.kr/#sclient=psy-ab&hl=ko&newwindow=1&site=&source=hp&q=c%23+regex+cheatsheet&pbx=1&oq=c%23+regex+cheatsheet&aq=f&aqi=&aql=1&gs_sm=e&gs_upl=761l761l0l1328l1l1l0l0l0l0l120l120l0.1l1l0&bav=on.2,or.r_gc.r_pw.&fp=e5fb3ac19a752789&biw=1920&bih=979
댓글
댓글 쓰기