따옴표가 포함된 문자열 분해
표준 분해() 함수를 사용하여 문자열을 분해하면 따옴표 안의 텍스트를 처리할 때 문제가 발생할 수 있습니다. 인용된 단어를 단일 항목으로 처리하는 원하는 결과를 얻으려면 보다 정교한 접근 방식이 필요합니다.
정규 표현식 사용
정규 표현식은 이 작업에 대한 강력한 솔루션을 제공합니다. . 다음 정규 표현식은 이스케이프된 따옴표를 허용하는 따옴표 붙은 문자열과 일치합니다.
"(?:\.|[^\"])*"|\S+
이 패턴을 preg_match_all()과 함께 사용하여 문자열에서 따옴표 붙은 단어와 따옴표가 없는 단어를 모두 추출할 수 있습니다.
$text = 'Lorem ipsum "dolor sit amet" consectetur "adipiscing \"elit" dolor'; preg_match_all('/"(?:\.|[^\"])*"|\S+/', $text, $matches);
결과 배열에는 원하는 내용이 포함됩니다. 출력:
Array ( [0] => Array ( [0] => Lorem [1] => ipsum [2] => "dolor sit amet" [3] => consectetur [4] => "adipiscing \"elit" [5] => dolor ) )
설명
정규식 패턴은 두 부분으로 구성됩니다.
비캡처 그룹(?:...)은 다음을 보장합니다. 이스케이프된 따옴표는 별도의 일치 항목으로 캡처되지 않습니다.
퍼센트 인코딩 처리 따옴표
문자열에 큰따옴표 대신 퍼센트로 인코딩된 따옴표가 포함된 경우 정규식을 다음과 같이 수정하세요.
%22(?:\.|(?!%22).)*%22|\S+
위 내용은 이스케이프된 따옴표와 퍼센트 인코딩된 따옴표를 포함하여 포함된 따옴표가 있는 문자열을 어떻게 분해할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!