2013-08-16 5 views
2

내가 피드에서 태그에서 이미지를 검색하려면 다음 정규식을 사용했을 것으로 예상 반환하지 :정규식이

var str=items.item(i).getElementsByTagName("content:encoded").item(0).text; 
var patt1=/([a-z\-_0-9\/\:\.]*\.(jpg|jpeg|png|gif))/i 
var urlMatch = str.match(patt1); 

그때 콘솔로 인쇄하고 urlMatch [0], urlMatch [1] urlMatch [2] 다음 태그 내에서에 대해 :

<![CDATA[ 
<p><a href="http://www.highlandradio.com/wp-content/uploads/2013/08/Emergency.jpg"><img class="alignleft size-thumbnail wp-image-56646" alt="Emergency" src="http://www.highlandradio.com/wp-content/uploads/2013/08/Emergency-150x150.jpg" width="150" height="150" /></a></p> <p><strong>The HSE has confi 
]]> 

이 각각 이하의 (3)의 결과를 반환한다 :

http://www.highlandradio.com/wp-content/uploads/2013/08/Emergency.jpg, 
http://www.highlandradio.com/wp-content/uploads/2013/08/Emergency.jpg, 
jpg. 

누군가가 내게 무슨 일이 일어 났는지 설명 할 수 있습니까? 왜 내가 150x150을 가진 제품을 가져 오지 않을까요? 이것이 내가 필요한 것입니다. 미리 도움을 주셔서 감사합니다.

답변

2

여러 경기 대신 첫 경기에 여러 그룹이 있습니다. 이는 urlMatch[0]이 일치 함을 의미하고 urlMatch[1]은 첫 번째 캡처 그룹 (전체 일치와 부사적으로 동일한 첫 번째 세트)이며 urlMatch[2]은 패턴의 두 번째 괄호 세트 (파일 확장자를 둘러 쌌다)입니다. . 결과

var patt1=/([a-z\-_0-9\/\:\.]*\.(jpg|jpeg|png|gif))/ig; 
var urlMatch = str.match(patt1); 

:

당신은 글로벌 g 플래그를 사용할 필요는을 경우 (모든 일치에 추가)를 캡처 그룹을 필요

[ 
    "http://www.highlandradio.com/wp-content/uploads/2013/08/Emergency.jpg", 
    "http://www.highlandradio.com/wp-content/uploads/2013/08/Emergency-150x150.jpg" 
] 

, 당신은 할 수 있습니다 RegExp.exec()을 사용하십시오.

그렇지 않은 경우 성능을 향상시키기 위해 캡처하지 않는 그룹을 사용할 수 있습니다. 어쨌든 바깥 괄호는 필요하지 않으므로 어쨌든 빠져 나갈 수 있습니다. 캡처하지 않는 그룹을 사용하면 다음과 같이 보입니다.

var patt1 = /[a-z\-_0-9´\/:.]*\.(?:jpg|jpeg|png|gif)/ig;