【发布时间】:2010-10-10 09:16:49
【问题描述】:
我有一个文本文档,我想从中提取 URL 并将它们放入一个新的文本文件中。我怎样才能在 Perl 中做到这一点?文本文件的示例在这里:
{"type":"TabGroupsManager:GroupData","id":65,"name":"XML 架构 编辑器","图片":"http://www.altova.com/favicon.ico","disableAutoRename":false,"titleList":"XML 架构编辑器\u000aAltova XMLSpy 代码 一代\u000a在线视频 演示\u000a计划的数据交换 案例研究\u000aXML 编辑器\u000aAltova XMLSpy 2011\u000aXML 模式管理 工具\u000a","tabs":["{\"entries\":[{\"url\":\"http://www.altova.com/xmlspy/xml-schema-editor.html\", \"标题\":\"XML 架构 Editor\",\"ID\":1442422751,\"referrer\":\"http://www.altova.com/xmlspy/xml-editing.html\",\"scroll\":\"0, 0\",\"formdata\":{\"#q\":\"\"}}],\"index\":1,\"attributes\":{\"image\":\"http ://www.altova.com/favicon.ico\"},\"extData\":{\"TabGroupsManagerGroupId\":\"65\",\"TabGroupsManagerGroupName\":\"XML 架构 编辑器\"},\"_formDataSaved\":true}","{\"entries\":[{\"url\":\"http://www.altova.com/xmlspy/xml-code-generation .html\",\"标题\":\"Altova XMLSpy 代码 Generation\",\"ID\":1442423118,\"referrer\":\"http://www.google.com/search?hl=en&client=firefox-a&hs=GR1&rls=org.mozilla%3Aen-GB% 3Aofficial&q=altova+derive+schema+from+xml&aq=f&aqi=m1&aql=&oq=&gs_rfai=\",\"scroll\":\"0,0\",\"formdata\":{\"#q\" :\"\"}}],\"index\":1,\"属性\":{\"image\":\"http://www.altova.com/favicon.ico\"},\ "extData\":{\"TabGroupsManagerGroupId\":\"65\",\"TabGroupsManagerGroupName\":\"XML 架构 编辑器\"},\"_formDataSaved\":true}","{\"entries\":[{\"url\":\"http://www.altova.com/videos.asp?type=0&video =xmlspy\",\"标题\":\"在线 视频 Demos\",\"ID\":1442423184,\"referrer\":\"http://www.altova.com/xmlspy/xml-code-generation.html\",\"scroll\":\" 0,0\",\"formdata\":{\"#q\":\"\"}}],\"index\":1,\"attributes\":{\"image\":\ "http://www.altova.com/favicon.ico\"},\"extData\":{\"TabGroupsManagerGroupId\":\"65\",\"TabGroupsManagerGroupName\":\"XML 架构 编辑器\"},\"_formDataSaved\":true}","{\"entries\":[{\"url\":\"http://www.altova.com/solutions/exchange_ratecasestudy.html\" ,\"标题\":\"预定 数据交换案例 研究\",\"ID\":2618,\"formdata\":{\"#q\":\"\"},\"scroll\":\"0,1369\"}],\" index\":1,\"attributes\":{\"image\":\"http://www.altova.com/favicon.ico\"},\"extData\":{\"TabGroupsManagerGroupId\" :\"65\",\"TabGroupsManagerGroupName\":\"XML 架构 编辑器\"},\"_formDataSaved\":true}","{\"entries\":[{\"url\":\"http://www.altova.com/xml-editor/\", \"标题\":\"XML Editor\",\"ID\":2620,\"formdata\":{\"#q\":\"\"},\"scroll\":\"0,0\"}],\" index\":1,\"attributes\":{\"image\":\"http://www.altova.com/favicon.ico\"},\"extData\":{\"TabGroupsManagerGroupId\" :\"65\",\"TabGroupsManagerGroupName\":\"XML 架构 编辑器\"},\"_formDataSaved\":true}","{\"entries\":[{\"url\":\"http://manual.altova.com/XMLSpy/spystandard/index.html ?xmlschemasstd.htm\",\"标题\":\"Altova XML间谍 2011\",\"ID\":2622,\"children\":[{\"url\":\"http://manual.altova.com/XMLSpy/spystandard/xmlspy_content_dyn.html\",\"标题\":\"Altova XMLSpy 2011\",\"ID\":2623,\"referrer\":\"http://manual.altova.com/XMLSpy/spystandard/index.html?xmlschemasstd.htm\",\"scroll\": \"0,0\"},{\"url\":\"http://manual.altova.com/XMLSpy/spystandard/xmlschemasstd.htm\",\"title\":\"XML Schemas\",\"ID\":2624,\"referrer\":\"http://manual.altova.com/XMLSpy/spystandard/index.html?xmlschemasstd.htm\",\"scroll\": \"0,260\"}],\"scroll\":\"0,0\"}],\"index\":1,\"attributes\":{},\"extData\":{\" TabGroupsManagerGroupId\":\"65\",\"TabGroupsManagerGroupName\":\"XML 架构 编辑器\"},\"_formDataSaved\":true}","{\"entries\":[{\"url\":\"http://www.altova.com/schemaagent.html\",\ "标题\":\"XML 模式管理 工具\",\"ID\":2626,\"formdata\":{\"#q\":\"\"},\"scroll\":\"0,171\"}],\"index\ ":1,\"attributes\":{\"image\":\"http://www.altova.com/favicon.ico\"},\"extData\":{\"TabGroupsManagerGroupId\":\ "65\",\"TabGroupsManagerGroupName\":\"XML 架构 编辑器\"},\"_formDataSaved\":true}"]}
从中我想创建一个文本文件,例如:
http://www.altova.com/xmlspy/xml-schema-editor.html
http://www.altova.com/xmlspy/xml-code-generation.html
【问题讨论】:
-
这是 JSON,您可以使用search.cpan.org提供的 perl JSON 模块
-
任何通用的 URL 提取都应该使用模块
URI::Find。