정확한 문자열 일치를 위해 PHP 정규식에서 단어 경계(\\b)를 올바르게 사용하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-10-21 07:23:30
원래의
1072명이 탐색했습니다.

How to Correctly Use Word Boundaries (\b) in PHP Regular Expressions for Precise String Matching?

PHP에서 정규식 단어 경계 명확화

PHP에서 정규식으로 작업할 때 정확한 문자열을 위해서는 단어 경계(b)를 이해하는 것이 중요합니다. 어울리는. 이 구분 기호는 단어 문자(w)와 단어가 아닌 문자(W) 사이의 전환을 표시합니다.

제공된 예에서는 "cat"라는 단어를 포함한 특정 단어를 일치하는지 여부를 고려하여 일치시키려는 의도입니다. 단어를 시작하거나 끝냅니다. 그러나 기대한 결과가 나오지 않습니다.

문제를 분석해 보겠습니다.

첫 번째 표현:

preg_match("/(^|\b)@nimal/i", "something@nimal", $match);
로그인 후 복사
  1. The 그룹(^|b)은 문자열의 시작 또는 단어 경계와 일치합니다.
  2. 주어진 문자열 "something@nimal"에서 "@" 앞에 단어 문자가 없으므로 그룹은 빈 문자열.
  3. 결과적으로 @nimal은 "@" 기호를 포함하는 다음 "@nimal"과 일치합니다.

두 번째 표현식:

preg_match("/(^|\b)@nimal/i", "something!@nimal", $match);
로그인 후 복사
  1. 역시 그룹(^|b)은 문자열의 시작이나 단어 경계와 일치합니다.
  2. 이 경우 앞에 단어 문자 "g"가 있습니다. "!"이므로 그룹은 비어 있지 않은 문자열과 일치합니다.
  3. 그러나 "!" 그리고 "@" 단어 문자가 없어 단어 경계가 없습니다.
  4. 결과적으로 그룹 일치에 실패하고, 일치하는 항목도 발견되지 않습니다.

해결책:

문제를 해결하려면 단어 경계가 단어 문자에서 비단어 문자로 전환될 때만 일치한다는 점을 이해하는 것이 중요합니다. 첫 번째 경우에는 "@" 앞에 단어 경계가 생성되는 반면, 두 번째 경우에는 "!" 사이에 그러한 경계가 존재하지 않습니다. 및 "@."

따라서 단어 문자로 시작하고 끝나는 단어를 일치시키는 올바른 표현은 다음과 같습니다.

preg_match("/\b@nimal\b/i", "something@nimal", $match);
로그인 후 복사

위 내용은 정확한 문자열 일치를 위해 PHP 정규식에서 단어 경계(\\b)를 올바르게 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿