c# 정규식을 이용한 문자열 추출과 체크 방법 RegularExpressions

  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 카카오스토리 공유하기

정규식을 이용하면 문자열에서 특정 문자열을 추출하거나, 특정문자열과 일치하는 문자열이 있는지등을 쉽게 체크할수 있습니다. 예를 들면 문자열 변수에서 한글만 추출하거나 영어만, 또는 숫자만 추출하는게 가능합니다.

정규식을 이용한 문자열에서 한글만 추출

정규표현식 패턴을 적용하여 한글만 추출하는 방법에 대해서 알아보도록 하겠습니다. pattern 변수에 한글만 필터링하는 정규표현식을 대입합니다. 그리고 Regex.Replace 함수를 이용해 한글만 남깁니다.

string input = "Hello 안녕하세요 1 2 3!";
string pattern = "[^ㄱ-ㅎ가-힣]+";
string result = Regex.Replace(input, pattern, "");

정규식을 이용한 문자열에서 숫자만 추출

코드는 간단합니다. 한글 추출할때와 정규식패턴만 다릅니다. 0부터 9까지의 숫자범위를 지정해주면 됩니다.

string input = "Hello 안녕하세요 1 2 3!";
string pattern = "[^0-9]+";
string result = Regex.Replace(input, pattern, "");

문자열 일치하는 부분 찾기

아래 정규표현식 패턴은 No로 시작되는 부분을 찾고 결과는 Nolavoza!가 출력됩니다.

string input = "Hello, Nolavoza!";
string pattern = "No.*";
Match match = Regex.Match(input, pattern);

if (match.Success)
{
    Console.WriteLine("일치하는 부분: " + match.Value);
}
else
{
    Console.WriteLine("일치하는 부분이 없습니다.");
}

특수문자 제거 함수

RemoveSpecial 함수는 파라미터 str 문자열에서 특수문자를 제거한 나머지 문자들을 리턴합니다. 아래의 주석은 정규식을 몰랐을 때 Replace 함수를 이용해 특수문자를 제거하던 방식입니다.

private string RemoveSpecial(string str)
{
    return Regex.Replace(str, @"[^a-zA-Z0-9가-힣_]", "", RegexOptions.Singleline);

    //return str.Replace('[', '').Replace(']', '').Replace('@','').Replace('!', '').Replace('`', '').Replace('!', '').Replace('#', '').Replace('$', '').Replace('%', '').Replace('^', '').Replace('&', '').Replace('*', '').Replace('(', '').Replace(')', '').Replace('-', '').Replace('+', '').Replace('@', '').Replace('@', '').Replace('@', '')
}

댓글 남기기

error: 저작권 콘텐츠보호를 부탁드립니다.