2009-08-16 4 views
0

거짓말하지 않으려 고, 나는 끔찍한 정규식에있어.Regex PHP 질문

$string = '>Data 1-23</a>'; 
$string = '>Datkl3</a>'; 
$string = '>RA Ndom</a>'; 

그리고 정규식을 사용하여 위의 문자열 내부에서 "데이터 1-23"를 꺼내 :

어떻게이 녀석을 할 수있을 것인가? 그리고이 중 여러 가지가있는 경우 일치하는 문자열을 모두 배열에 넣을 수 있습니까?

+0

여러 예제 문자열과 결과를 제공하면 도움이됩니다. 내 말은,이 단일 예제에서 $ string = ~ s /> // g; 충분할 것 같아 보이지만, 그게 네가 원하는지 의심 스럽네. –

+0

감사합니다 htw, 심지어 코드 LOL에 대해 알고 잊고 바보 같은 실수였습니다. 다시 한 번 감사드립니다 – James

+0

리터럴 문자열 "Data 1-23"을 꺼내시겠습니까, 아니면 모든 "a"태그의 내용을 가져 오시겠습니까? – TheJacobTaylor

답변

3
<?php 
    $string = ">Data 1-23</a>"; 
    $pattern = '/>([^<]*)</a>/'; 
    preg_match($pattern, $subject, $matches); 
    print_r($matches); 
?> 

내가 이해하는 한 원하는대로 제공해야합니다.

5

하이퍼 링크로 텍스트를 찾는 경우 가장 좋은 내기는 SimpleHTMLDom입니다. 여기에 간단한 예는 다음과 같습니다

$html = file_get_html('http://www.amazon.com/'); 
foreach($html->find('a') as $element) 
    echo $element->innertext . '<hr/>'; 

DOM 트리를 구문 분석하는 데 도움이 간단한 정규 표현식

희망보다 더 신뢰할 수있는 결과를 제공합니다!