2010-05-06 7 views
1

:Actionscript에서 regex를 사용하여 텍스트를 추출하는 방법은 무엇입니까? 아래의 HTML에서

<a href="link1.php">1</a><a href="link2.php">2</a><a href="link3.php">3</a> 

어떻게 link1.php,link2.php,link3.php를 추출 정규식을 사용하여 배열로 밀어합니까? (텍스트의 <a> 태그 N 수가있을 수 있습니다)

[편집] 나는 이것에 대한 정규식 href="([^"])*" 같은 것입니다 알고 있어요. 그러나 나는 이것을 Actionscript에서 어떻게 다루는 지 알고 싶다. 특히, 그들은 어떻게 액션 스크립트에 배열 에 푸시 수 있습니까?

답변

1
var str:String = '<a href="link1.php">1</a><a href="link2.php">2</a><a href="link3.php">3</a>'; 
var result:Array = str.split(/<a[^>]*href="([^"]*)".*?>.*?<\/a>/); 
for (var i:int = 1; i < result.length; i += 2) { 
    trace(result[i]); // link1.php, link2.php, link3.php 
} 
0
<a[^>]*href="([^"]*)" 
0

정규식 href="([^"])*"은 대부분 작동합니다. 그것은 \1에 붙잡을 것입니다. 루프에서 이것을 사용해야 할 수도 있으며 "을 탈출해야 할 수도 있습니다.

0

RegExp.exec()을 사용하면 배열처럼 색인으로 액세스 할 수있는 객체를 반환합니다.

또한 thisthis 게시물을 편리하게 볼 수 있습니다.

0

regex to parse html을 사용 하시겠습니까?

같은 것에 대해 어떻게 :

var anchors:String = '<a href="link1.php">1</a><a href="link2.php">2</a><a href="link3.php">3</a>'; 
var html = new XML('<p>' + anchors + '</p>'); 
var links:Array = []; 
for each(var a:XML in html.a) 
    links.push(String([email protected])); 
+0

** 텍스트는 다음과 같이 수 있습니다 ** : 1이 링크가 3 그래서이 만드는 간단한 텍스트의 많은 사이에 여기에 텍스트 2 많이있을 수 있습니다 XML은 좋은 생각이 아닐 수도 있습니다. – Yeti

+0

유효한 xml이고 모든 앵커 태그가 최상위 레벨 (다른 p 또는 div 안에 있지 않음)에있는 한 올바르게 작동합니다. 앵커 태그가 중첩 된 경우,'for each' 내부의'html.a' 대신'html..a'를 사용하여 앵커 인 모든 하위 항목에 액세스 할 수 있습니다. – Amarghosh

관련 문제