【发布时间】:2010-06-11 02:26:41
【问题描述】:
我正在使用 cURL 获取网页并呈现给我们的用户。在我发现一个使用大量 Ajax 的网站之前,一切都很顺利,其格式如下:
33687|updatePanel|ctl00_SiteContentPlaceHolder_FormView1_upnlOTHER_NATL|
<div id="ctl00_SiteContentPlaceHolder_FormView1_othernationalities">
<h4>
<span class="tooltip_text" onmousemove="widetip=false; tip=''; delayToolTip(event,tip,widetip,0,0);return false"
onmouseout="hideToolTip()">
<span id="ctl00_SiteContentPlaceHolder_FormView1_lblProvideOTHER_NATL">Provide the following information:</span></span>
</h4>
|
266|scriptBlock|ScriptContentNoTags|
document.getElementById('ctl00_SiteContentPlaceHolder_FormView1_dtlOTHER_NATL_ctl00_csvOTHER_NATL').dispose = function() {
Array.remove(Page_Validators, document.getElementById('ctl00_SiteContentPlaceHolder_FormView1_dtlOTHER_NATL_ctl00_csvOTHER_NATL'));
}
所以,响应的每个部分是 4 个部分:2 和 3 只是标识符,4 是真正的“正文”,1 是正文的长度。问题在于我们修改了正文,我需要能够更新第一部分的长度以表明这一点;否则,我们在将其插入网页时会引发解析错误。
我正在尝试找出 shell 命令(awk、sed 等)的组合: a) 读取保存的文件 b) 在其上运行正则表达式以收集每个单独的信息块(使用 '(\d*?)\|(.?)\|(.?)\|(.*?)\| ') c) 使第一个捕获组等于最后一个捕获组的长度 d) 将所有正则表达式匹配保存到新文档或返回到原始文档
非常感谢“集体”的任何意见。
【问题讨论】: