PHP에서 대괄호 안의 텍스트 캡처
프로그래밍을 하다 보면 더 큰 문자열에서 특정 데이터를 추출해야 하는 경우가 종종 있습니다. 일반적인 시나리오 중 하나는 제공된 예에서 볼 수 있듯이 대괄호로 묶인 텍스트를 캡처하는 것입니다.
[This] is a [test] string, [eat] my [shorts].
목표는 이 문자열을 배열로 변환하는 것입니다.
[ '[This]', '[test]', '[eat]', '[shorts]' ]
기본적인 /[.*?]/ 같은 정규식은 충분해 보일 수 있지만 대괄호의 첫 번째 인스턴스만 캡처합니다. 원하는 결과를 얻으려면 수정된 접근 방식이 필요합니다.
정규 표현식 솔루션:
preg_match_all을 수정된 정규 표현식과 함께 사용하면 내부의 모든 텍스트 항목과 일치시킬 수 있습니다. 대괄호. 다음 코드는 이를 수행합니다.
preg_match_all("/\[[^\]]*\]/", $text, $matches); var_dump($matches[0]);
이 코드는 다음 정규식을 사용합니다.
대괄호 제거를 위한 대체 방법:
괄호 없이 텍스트를 추출하려면 정규식을 수정하면 됩니다. 약간:
preg_match_all("/\[([^\]]*)\]/", $text, $matches); var_dump($matches[1]);
이 코드는 다음을 사용합니다.
"*" 수량자를 사용하는 세 번째 옵션:
느리지만 대안으로 "*" 한정자를 사용하는 방법도 있습니다. "[^]":
preg_match_all("/\[(.*?)\]/", $text, $matches); var_dump($matches[1]);
이러한 정규식을 사용하면 대괄호 안의 텍스트를 효과적으로 캡처하여 초기 문제 설명에 설명된 원하는 출력을 제공할 수 있습니다.
위 내용은 PHP를 사용하여 문자열에서 대괄호로 묶인 텍스트를 어떻게 추출할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!