특정 태그 사이의 내용을 추출하기 위해서는 정규식
본문 바로가기
php스쿨

특정 태그 사이의 내용을 추출하기 위해서는 정규식

by AICanvas 2023. 5. 15.
728x90
SMALL

특정 태그 사이의 내용을 추출하기 위해서는 정규식을 사용할 수 있습니다. 다음은 예시 코드입니다.

$regex = "/<tag\b[^>]*>(.*?)<\/tag>/s";
$string = "<tag>내용1</tag><tag>내용2</tag>";
preg_match_all($regex, $string, $matches);
print_r($matches[1]);

위의 코드에서 `<tag>`와 `</tag>` 사이에 있는 내용을 추출하기 위해 다음과 같은 정규식을 사용합니다.

/<tag\b[^>]*>(.*?)<\/tag>/s

해당 정규식은 다음과 같은 역할을 수행합니다.

1. `<tag>`로 시작하는 문자열을 찾습니다.
2. `\b[^>]*`는 태그의 속성을 허용하고, `<`을 제외한 모든 문자열을 허용합니다.
3. `.*?`는 최소한의 문자열을 찾습니다. 이는 태그 안에 다른 태그가 있을 때 태그의 끝을 찾을 때까지 가능한한 적은 문자열을 매칭합니다.
4. `<\/tag>`로 종료하는 문자열을 찾습니다.

위의 예시 코드에서는 `preg_match_all()` 함수를 사용하여 정규식에 일치하는 모든 문자열을 찾습니다. `$matches[1]`에는 정규식에서 `.*?`로 매칭된 문자열이 포함됩니다.

위의 예시 코드에서 `s` 플래그는 "single line" 모드를 활성화합니다. 이 모드에서는 줄바꿈 문자를 무시하고, `.` 메타문자가 줄바꿈 문자도 포함하여 어떠한 문자열이든 매칭하도록 합니다. 이 모드를 사용하지 않으면 여러 줄에 걸쳐 있는 경우 정규식이 작동하지 않을 수 있습니다.

728x90
LIST

댓글