문제
PHP를 통해 파일의 특정 부분을 얻으려면 regex를 사용하고 있습니다!
입력 예를 보여 드리겠습니다. 예 :
=== KEYWORD1 ===
CONTENT
==== ANOTHERKEYWORD ====
CONTENT2
=== TESTKEYWORD ===
CONTENT3
.
My Regex는 다음과 같을 수 있습니다 : $pattern = "/.*=+ SEARCHTERM =+(.*?)=+.*=+.*/s";
SEARCHTERM
는 정규식의 유연한 부분입니다.
여기에서 내가 무엇을 기대하는지에 대한 개요와 내가받는 것 :
-
searchterm 을 키워드로 바꾸면
CONTENT
를 기대하지만 아무것도 얻지 못한다.
searchterm 이 anothingkeyword 로 바뀌면 CONTENT2
andd가 그것을 얻을 것으로 기대합니다 (그래서이 경우 )
searchterm 이 testkeyword 로 바뀌면 testkeyword로 대체되고 를 얻지 못한다.
이있을 수 있지만 및 을 초과하는 빈 줄이 될 수는 없지만 의 빈 줄은 and 이 없으면 정규식이 먼저 다른=== anything=== searchterm 이후에만 없음이 없으면 모든 것을 읽을 때까지 모든 것을 읽으십시오.
CONTENT3
를 생각했지만 이렇게하면 SyntaxErrors가 발생합니다.
도움이 매우 높이 평가됩니다!
해결책
다음을 시도하십시오 :
$str = <<<EOD
=== KEYWORD1 ===
CONTENT
==== ANOTHERKEYWORD ====
CONTENT2
=== TESTKEYWORD ===
CONTENT3
EOD;
foreach(array('KEYWORD1', 'ANOTHERKEYWORD', 'TESTKEYWORD') as $keyword) {
preg_match("/.*=+ $keyword =+([^=]+)/m", $str, $m);
echo "$keyword -> $m[1]\n";;
}
.
출력 :
.KEYWORD1 ->
CONTENT
ANOTHERKEYWORD ->
CONTENT2
TESTKEYWORD ->
CONTENT3
제휴하지 않습니다 StackOverflow