我有一个长字符串的HTML从网页。我想要进入内容,我在内容之前发现了这个:
<span style='margin-left:3px'><g:plusone size='medium' count='false'></g:plusone></span>
</div>
有一个换行,我不认为actionscript 3喜欢换行时使用分割。例如:
var theContent:Array = htmlSource.split("<span style='margin-left:3px'><g:plusone size='medium' count='false'></g:plusone></span></div>");
输出整个HTML源的一个大数组。
我如何使它能够成功地获取内容?我试过/r,它不起作用。
您试过n
了吗?
var theContent:Array = htmlSource.split("...snip...</span>n</div>");
为什么不做一个简单的find + substr?
var sStr:String="<span style='margin-left:3px'><g:plusone size='medium' count='false'></g:plusone></span></div>";
var idx:int=htmlSource.indexOf(sStr);
var len:int=sStr.length;
var content:String=htmlSource.substr(idx+len);
如何使用正则表达式?
var regExp:RegExp = /(<span style='margin-left:3px'><g:plusone size='medium' count='false'></g:plusone></span>s?</div>)(.*)/s;
var content:String = htmlSource.replace(regExp, "$2");
"$2"
返回第二个捕获组(即。(您提供的分隔符之后的所有内容)。如果您想要数组,请使用match(regExp)
代替。
s?
和dotall标志(最后是s
)完成了任务。
注意:这是真正的惰性代码,因为您可以很容易地减少regExp。最重要的是效果。