2012-10-23 6 views
0

가능한 중복은 :php로 정규식을 작성하는 방법은 무엇입니까?

Dir: <a href="/name/nm0381817/">Vinton Heuck</a>, <a href="/name/nm1367649/">Ciro Nieli</a> 
    With: <a href="/name/nm0519680/">Eric Loomis</a>, <a href="/name/nm0732436/">Bumper Robinson</a>, <a href="/name/nm1685408/">Dawn Olivieri</a> 

일반적으로, 거기 한 후 2 개 앵커 요소 "
Regex - Greedyness - matching HTML tags, content and attributes

내가 구문 분석 할 텍스트는이 같은 것입니다 Dir "과"With "뒤에 여러 앵커 요소가 있습니다.

"Dir"뒤에 "With"앞에 앵커 요소의 모든 값을 가져오고 싶습니다. 나는 이런 정규식을 시도했다 :

"Dir"뒤에 하나의 앵커 요소가있는 경우에만 작동한다. 어떤 제안? 감사!

+0

페이를, 당신은 "하나 개의 앵커 요소가있을 경우에만 작동합니다"말할 때, 무슨 일이? (모든 것을 반환합니까? 아무것도 아십니까?) – Shalmezad

답변

0

하나의 하나 또는 두 개의 링크를 얻으려면 몇 가지 그룹화 명령어 (누락)가 있다고 생각합니다. this을 살펴보고 정규식을 테스트하십시오.

0

앵커 태그를 찾으려면 정규 표현식을 그룹화하고 하나 이상을 사용하려면 +를 사용해야합니다. 같은

뭔가 :

/Dir: (<a href=\"\/name\/.+\/\">(.+)<\/a>)+/ 

당신은 계정에 쉼표를 취할 편집해야 할 것이다, 그러나 당신이 시작하는 것입니다. 한 번만 나타납니다

0

"디렉터리"이 포함 된 행이 있다고 가정하면 더가 그 때

preg_match_all("/(<([[:graph:]]+)[^>]*>)(.*?)(<\/\\2>)/", preg_replace("/[[:blank:]]*With:.*/","",$content), $matches); 

print_r($matches[3]); 
관련 문제