테스트 사이트 - 개발 중인 베타 버전입니다

php 정규식 질문입니다 채택완료

wow1004 4년 전 조회 1,768

<div name="work" id="work_one" class="mainBox">

위와 같은 예시에서 div의 속성 값인 name, id, class의 속성값을 정규식을 이용해서 가져오려고 합니다.

즉, work, work_one, mainBox를 정규식을 이용해서 결과값으로 받으려고 하는데, 정규식으로 계속 헤메다가 결국 막혀서 질문 올려요.

 

부탁드립니다

댓글을 작성하려면 로그인이 필요합니다.

답변 5개

채택된 답변
+20 포인트
T
4년 전

$html = '<div name="work" id="work_one" class="mainBox">';
preg_match_all('# ([a-z\-]+)=#', $html, $matches);
print_r($matches[1]);



Array
(
    [0] => name
    [1] => id
    [2] => class
)

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

https://simplehtmldom.sourceforge.io/

이것도 검토해 보세요.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

4년 전

참조하세요. php버전

<?php
$data = '<div name="work" id="work_one" class="mainBox">';

$pattern = "#<div name=\"(.+)\" id=\"(.+)\" class=\"(.+)\">#i";

preg_match($pattern, $data, $m);

//print_r($m);

echo "name : $m[1]\n";
echo "id : $m[2]\n";
echo "class : $m[3]\n";
 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

</p>

<p>// name 안 값 찾기</p>

<p>(<div[^>]+name\s*=\s*[\"']?([^>\"']+)[\"']?[^>]*>)</p>

<p> </p>

<p>// id 값찾기</p>

<p>(<div[^>]+id\s*=\s*[\"']?([^>\"']+)[\"']?[^>]*>)</p>

<p> </p>

<p>//  class 값 찾기</p>

<p>(<div[^>]+class\s*=\s*[\"']?([^>\"']+)[\"']?[^>]*>)</p>

<p>

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인