C# 정규표현식을 활용한 다양한 데이터 형식 검증 기법

정규표현식 기본 규칙 참고표

온라인 정규표현식 테스트 사이트를 활용하면 편리하다.

/*
설명:
1. 아래 정규표현식은 모두 ^로 시작하고 $로 끝나며, 전체 문자열을 대상으로 매칭한다.
2. 정규표현식 앞에는 @를 붙여야 한다. 예: bool reg = Regex.IsMatch("35_ab", @"^[0-9a-zA-Z_]{1,}$");
3. 괄호는 남용하지 않는다.
4. [0-9]와 같은 표현에는 공백이 없어야 한다. 예: [0 - 9]와 같이 작성하지 않는다.
*/

다음 콘솔 프로그램으로 정규표현식을 검증할 수 있다:

using System;
using System.Text.RegularExpressions;

namespace RegexValidationDemo
{
    class Validator
    {
        static void Main(string[] args)
        {
            bool isMatch = Regex.IsMatch("_65_", @"^[0-9a-zA-Z_]{1,}$");
            Console.WriteLine(isMatch ? "일치" : "불일치");
            Console.ReadKey();
        }
    }
}

1. 영문자, 숫자, 밑줄로 구성된 문자열

^[0-9a-zA-Z_]{1,}$

2. 음이 아닌 정수 (0 및 양수)

^\d+$

3. 양의 정수

^[0-9]*[1-9][0-9]*$

4. 양수가 아닌 정수 (0 및 음수)

^((-\d+)|(0+))$

5. 음의 정수

^-[0-9]*[1-9][0-9]*$

6. 모든 정수

^-?\d+$

7. 양의 정수 또는 음이 아닌 부동소수점 수

^\d+(\.\d+)?$

8. 양의 부동소수점 수

^([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)$

9. 양수가 아닌 부동소수점 수 (0 및 음수)

^((-\d+(\.\d+)?)|(0+(\.0+)?))$

10. 음의 부동소수점 수

^-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+))$

11. 모든 부동소수점 수

^(-?\d+)(\.\d+)?$

12. 영문자로만 구성된 문자열

^[A-Za-z]+$

13. 대문자 영문자로만 구성된 문자열

^[A-Z]+$

14. 소문자 영문자로만 구성된 문자열

^[a-z]+$

15. 숫자와 영문자로 구성된 문자열

^[A-Za-z0-9]+$

16. 숫자, 영문자, 한자, 밑줄로 구성된 문자열

^\w+$

17. 이메일 주소

^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$

18. URL

^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$

19. 전화번호

^(\d{3,4}-?)?\d{7,8}$

20. IP 주소

^(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[0-9]{1,2})(\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[0-9]{1,2})){3}$

21. 한자 문자만 포함된 문자열

^[\u4e00-\u9fa5]+$

22. 문자열 시작 또는 끝의 공백

^(\s)|(\s)$

23. 계정 이름 검증 (영문자로 시작, 5-16자, 영문자/숫자/밑줄 허용)

^[a-zA-Z][a-zA-Z0-9_]{4,15}$

24. QQ 번호 (5-11자리, 첫 자리 0 불가)

^[1-9][0-9]{4,10}$

25. 숫자만 입력

^[0-9]+$

26. n자리 숫자만 입력

^\d{n}$

27. 최소 n자리 숫자 입력

^\d{n,}$

28. m ~ n자리 숫자 입력

^\d{m,n}$

29. 0 또는 0이 아닌 숫자로 시작하는 숫자

^(0|[1-9][0-9]*)$

30. 소수점 두 자리 양의 실수

^[0-9]+\.[0-9]{2}$

31. 소수점 1~3자리 양의 실수

^[0-9]+\.[0-9]{1,3}$

32. 0이 아닌 양의 정수

^\+?[1-9][0-9]*$

33. 0이 아닌 음의 정수

^\-[1-9][0-9]*$

34. 정확히 3자리 문자열

^.{3}$

35. 숫자와 영문자로 구성된 문자열 (중복)

^[A-Za-z0-9]+$

36. 숫자, 영문자, 밑줄 또는 한자로 구성된 문자열 (중복)

^\w+$

37. 특수 문자 포함 여부 검사 (% & ', ; = ? $ \ " 등)

[%&',;=?$\\]+

태그: 정규표현식 C# 데이터검증 문자열매칭 Regex

6월 10일 00:12에 게시됨