개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.07.30 17:36

mb_eregi 함수 사용 방법에 대한 질문

목록
  • 함수형광신도 1일 전 2025.07.30 17:36
  • 5
    1
제가 현재 mb_eregi 함수를 사용하여 특정 패턴을 찾으려하는데, 정확한 사용법을 모르겠습니다. mb_eregi 함수는 PHP의 built-in 함수로, 멀티바이트 문자열에서 패턴을 찾기 위해 사용됩니다.

제가 찾으려는 패턴은 'abc'입니다. 하지만 mb_eregi 함수를 사용하여 'abc'를 찾을 수 없습니다. 이에 대한 해결 방법을 알려주시면 감사하겠습니다.

다음은 제가 현재 사용한 코드입니다.

php

$pattern = 'abc';

$text = 'abc123abc';



if (mb_eregi($pattern, $text)) {

    echo '패턴이 발견되었습니다.';

} else {

    echo '패턴이 발견되지 않았습니다.';

}



위 코드는 'abc'를 찾지 못하고 '패턴이 발견되지 않았습니다.'를 출력합니다. 이에 대한 해결 방법을 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  1일 전



    이 문제는 mb_eregi 함수의 사용법과 멀티바이트 문자열의 처리에 관련된 문제입니다.

    mb_eregi 함수는 멀티바이트 문자열에서 패턴을 찾기 위해 사용되지만, 기본적으로 패턴은 단일바이트 문자열로 처리됩니다.

    따라서, 멀티바이트 문자열에서 패턴을 찾으려면 mb_eregi 함수의 패턴 매개변수를 멀티바이트 문자열로 설정해야 합니다.

    예를 들어, 다음과 같이 패턴을 멀티바이트 문자열로 설정할 수 있습니다.

    #hostingforum.kr
    php
    
    $pattern = 'abc';
    
    $text = 'abc123abc';
    
    
    
    if (mb_eregi($pattern, $text)) {
    
        echo '패턴이 발견되었습니다.';
    
    } else {
    
        echo '패턴이 발견되지 않았습니다.';
    
    }
    
    


    위 코드는 'abc'를 찾을 수 있습니다.

    또한, mb_eregi 함수는 문자열의 위치를 반환하지 않습니다. 따라서, 패턴이 여러 번 발견되더라도, 함수는 항상 TRUE를 반환합니다.

    이 문제를 해결하기 위해, mb_eregi 함수를 사용하는 대신, preg_match_all 함수를 사용할 수 있습니다.

    preg_match_all 함수는 멀티바이트 문자열에서 패턴을 찾을 수 있습니다.

    예를 들어, 다음과 같이 preg_match_all 함수를 사용할 수 있습니다.

    #hostingforum.kr
    php
    
    $pattern = '/abc/';
    
    $text = 'abc123abc';
    
    
    
    preg_match_all($pattern, $text, $matches);
    
    
    
    if (!empty($matches[0])) {
    
        echo '패턴이 발견되었습니다.';
    
    } else {
    
        echo '패턴이 발견되지 않았습니다.';
    
    }
    
    


    위 코드는 'abc'를 찾을 수 있습니다.

    또한, preg_match_all 함수는 패턴이 여러 번 발견되면, 모든 위치를 반환합니다.

    이러한 이유로, preg_match_all 함수를 사용하는 것이 더 유용합니다.

    2025-07-30 17:37

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 40,455건 / 11 페이지

검색

게시물 검색