나는 다소 여기에서 붙어있다.
나는이 패턴을 가지고 :
<a class="title" href="showthread.php?t=XXXXX" id="thread_title_XXX">DATADATA</a>
는 '고유 한 서명'난 그냥 썼다있는 동안 나는 내 문자열 (웹 페이지)가 내 모든 데이터가이 형식으로 저장됩니다 것을 알고있다. XXX의 수는 2에서 12 자리 사이의 DIGITS (각 X는 숫자)의 어딘가에 동적입니다.
전체 행을 찾기 위해 긴 표현식을 작성할 수는 있지만 전체적인 것이 아닌 데이터를 추출하고 싶습니다.
어떻게해야합니까? 예를 들어 주시면 감사하겠습니다.
감사합니다.어떤 정규식이 필요합니까?
1
A
답변
2
실제로 무엇을하고 싶습니까? XXXXX 서명 또는 모든 링크를 받으시겠습니까?
이 시도 -이 서명하고 데이터를 얻을 수있다
<?php
$S = '<a class="title" href="showthread.php?t=1234567" id="thread_title_XXX">DATADATA</a>';
$pattern = '!<a.*href="showthread.php\?t=(.*)".* id=".*">(.*)</a>!';
echo "<pre>";
print_r(preg_match($pattern, $S, $res));
print_r($res);
echo "</pre>";
?>
3
정규 표현식을 잊어 버리면 HTML과 같은 형식을 구문 분석하지 않습니다. 특히 이 이미 존재하는 경우 특히 그렇습니다.
는 XPath를 사용하여 노드를 찾기 : 당신이 얻을$href = $node->getAttribute('href');
parse_str(substr($href, strpos($href, '?')+1), $query);
$t = $query['t'];
$id = $node->getAttribute('id');
$title = substr($id, strlen('thread_title_'));
$data = $node->nodeValue;
var_dump($t, $title, $data);
:
string(5) "XXXXX"
string(3) "XXX"
string(8) "DATADATA"
3
에 한번 사용 :
를 다음$html = <<<EOT
<html>
Some html
<a class="title" href="showthread.php?t=XXXXX" id="thread_title_XXX">DATADATA</a>
</html>
EOT;
$dom = new DOMDocument;
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
foreach ($xpath->query('//a[starts-with(@href, "showthread.php")]') as $node) {
// ...
}
substr, strpos 및 parse_str를 사용하여 데이터를 추출
$parsed_str = '<a class="title" href="showthread.php?t=45343" id="thread_title_XXX">DATADATA</a><a class="title" href="showthread.php?t=466666" id="thread_title_XXX">DATADATA</a> fasdfasdfsdfasd gfgfkgbc 04034kgs <fdfd> dfs</fdfa> <a class="title" href="showthread.php?t=7777" id="thread_title_XXX">DATADATA</a>';
preg_match_all("/.*?\?t\=([\d]{2,12}).*?/", $parsed_str, $result);
print_r($result);
관련 문제
- 1. 어떤 정규식이 전자 메일 유효성 검사에 유용합니까?
- 2. 어떤 doctype이 필요합니까?
- 3. 어떤 SSL 인증서가 필요합니까?
- 4. 어떤 Crystal 버전이 필요합니까?
- 5. JUNG : 어떤 라이브러리가 필요합니까?
- 6. 어떤 쿼리 세트가 필요합니까?
- 7. 어떤 용도로 어떤 XML 라이브러리가 필요합니까?
- 8. 자바 스크립트 양식 유효성 검사/위생 처리 여기에 정규식이 필요합니까?
- 9. 자바 스크립트 퍼지 필터는 텍스트 기반 범위, 정규식이 필요합니까?
- 10. Sharepoint에는 어떤 종류의 CAL이 필요합니까?
- 11. 여기에 어떤 CSS 선택기가 필요합니까?
- 12. Symbian에서는 어떤 종류의 비용이 필요합니까?
- 13. 어떤 소프트웨어 개발 방법론이 필요합니까?
- 14. Drupal 개발자는 어떤 기술이 필요합니까?
- 15. 어떤 종류의 캐싱 메커니즘이 필요합니까?
- 16. 어떤 버전의 Windows SDK가 필요합니까?
- 17. 어떤 데이터베이스 사용자 권한이 필요합니까?
- 18. 오차드 CMS에는 어떤 권한이 필요합니까?
- 19. 정규식이 URL을
- 20. 어떤 정규식이 중첩 테이블을 테이블 셀의 식별 가능한 텍스트와 비교합니까?
- 21. 어떤 정규식이 내 문자열과 일치하는지 어떻게 알 수 있습니까?
- 22. 이 정규식이 작동하지 않는 이유는 무엇입니까?
- 23. DBMS_METADATA.GET_DDL을 사용하려면 어떤 Oracle 권한이 필요합니까?
- 24. 어떤 경우에 필요한 이벤트 분리가 필요합니까?
- 25. Active Directory를 LDAP로 읽으려면 어떤 권한이 필요합니까?
- 26. 테스트없이 데이터베이스 동기화를 요청하려면 어떤 질문이 필요합니까?
- 27. 온라인 지불에는 어떤 보안 수단이 필요합니까?
- 28. ASF 파일을 스트리밍하려면 어떤 HTTP 헤더가 필요합니까?
- 29. 빠른 '% term %'검색에는 어떤 종류의 색인이 필요합니까?
- 30. 이 시나리오에서 모델간에 어떤 연관성이 필요합니까?