[PHP] 정규표현식 한글 검사

2022. 9. 19. 01:21Program/PHP

072_PHP 정규표현식 한글 검사

[요약]

  • 변수의 값이 한글인지를 정규표현식을 사용해 검사하는 방법에 대해 알아보자.

값이 모두 한글로 구성되어 있는지 확인하는 방법에 대해 알아보자.

한글은 '가'로 시작하여 '힣'으로 끝난다.

'가'부터 '힣'까지를 표시하려면 기호 '-'를 사용한다.

간격(구간)을 지정하려면 '['와 ']' 사이의 간격(구간)을 입력한다.

한글로만 구성되어야 하므로 첫글자도 한글, 마지막 글자도 한글이어야 첫 글자를 의미하는 기호인 '^'와 마지막 글자를 의미하는 기호인 '$'를 사용하여 다음의 패턴식을 구성한다.

$pattern '/^[가-힣]$/';

시작하는 기호 '^' 다음으로 간격(구간) [가-힣]가 위치하므로 '가'부터 '힣'까지의 문자가 첫 글자로 위치해야 하며 끝나는 기호 앞에 기호 '$'가 위치해 '가' 부터 '힣'까지의 문자로 끝나는 것을 의미한다.

 

앞의 패턴에서 몇 바이트 검사를 할지 지정해야 한다.

바이트를 지정하지 않으면 1byte를 검사한다.

정규식에서 영문과 특수문자는 한 글자당 1byte이며, 한글은 한 글자당 3byte이다.

 

패턴 검사할 byte는 간격 뒤에 '{}'를 사용해 검사할 byte 수를 지정한다.

1글자를 검사한다면 {3}을 지정하고, 3글자를 검사한다면 {9}를 지정한다.

또한 1그랒 이상 검사한다면 {3,}을 지정한다.

 

물론 여기에서도 1byte 이상 검사하는 '+'를 사용해도 무관하다.


[패턴 검사할 byte 지정하는 방법]

한글 1글자 검사하기
$pattern = '/^[가-힣]{3}$/';

한글 3글자 검사하기
$pattern = '/^[가-힣]{9}$/';

한글 3글자에서 5글자까지 검사하기
$pattern = '/^[가-힣]{9, 15}$/';

한글 3글자 이상 검사하기
$pattern = '/^[가-힣]{9,}$/';

 

다음은 값이 모두 한글로 구성되었는지 확인하는 예제이다.

[예제: 74-regExp.php ]

<?php
    // 패턴 대입
    $pattern = '/^[가-힣]{3,}$/';

    $str = "웹코딩시작하기";

    if (preg_match($pattern, $str, $matches)) {
      echo "값 {$str}은(는) 정규식 표현에 적합한 값입니다.";
      echo "<pre>";
      var_dump($matches);
      echo "</pre>";
    } else {
      echo "이름에 특수문자, 영문 또는 숫자가 있는지 확인 요망.";
    }
?>

실행결과

 

 

 


 

 

 

초보자를 위한 PHP 200제
김태영 지음 | 정보문화사