我有文字
<p>Some text to extract</p>
有没有一种方法可以让我获取 as3 中标签之间的文本。那只是“要提取的一些文本”。
我试过使用正则表达式
string.match(/<p>(.*?)<\/p>/g)
但它返回<p>
标签。
同样需要从中提取文本:
<caption><![CDATA[<p>Some text to extract.<span> -- Span text</span></p>]]></caption>
谢谢
我有文字
<p>Some text to extract</p>
有没有一种方法可以让我获取 as3 中标签之间的文本。那只是“要提取的一些文本”。
我试过使用正则表达式
string.match(/<p>(.*?)<\/p>/g)
但它返回<p>
标签。
同样需要从中提取文本:
<caption><![CDATA[<p>Some text to extract.<span> -- Span text</span></p>]]></caption>
谢谢
这应该这样做:)
var reg:RegExp = /<p>(.*?)<\/p>/gi;
var str:String = "<p>Some text to extract</p>";
var raw:String = str.replace(reg, "$1");
trace("str", str);//str <p>Some text to extract</p>
trace("raw", raw);//raw Some text to extract
如果您的标签是正确的,您可以尝试将其解析为 xml。这将适用于您给定的示例:
var input:String = "<p>Some text to extract</p>";
var xml:XML = new XML(input);
trace(xml.text().toString()); // traces "Some text to extract"
以下不是一个真正干净的答案......直到我花了一些时间弄乱它,我才能得到它。您可能不想接受这个作为答案,但我正在发布它,因为我确实设法得到了结果......也许其他人可以让它更干净。
我从来没有真正遇到过我感兴趣的节点(
本例中的节点)具有文本内容和一个子节点(与我的 xml 中的 CDATA 相同)。下面的代码是经过一些随机猜测和检查 api。每天学些新东西。=b
var inputString:String = "<caption><![CDATA[<p>Some text to extract.<span> -- Span text</span></p>]]></caption>";
var xml:XML = new XML(inputString);
// oddly this seems to filter out the caption and CDATA tag...but the resulting output is all in 1 element still
trace(xml); // traces out: <p>Some text to extract.<span> -- Span text</span></p>
xml = new XML(xml.toString()); // turn this into xml again
trace(xml); // this looks better now...traces out the expected xml
trace("{"+ xml.p +"}"); // traces out blank for some reason...
trace(xml.span); // traces out the expected span tag contents: "-- Span text"
trace(xml.descendants()[0]); // traces out "Some text to extract." -got it!
trace(xml.descendants()[1]); // traces out "-- Span text"