这是我拼凑的正则表达式:
/(.*={76}\s)?\s*(.*?)\s\-\-\s(\d{2}\/\d{2}\-\d{2}\s\d{2}:\d{2})\s\s(.*?)\s(http:\/\/service.*?)\s(\-{76})/is
这是我要解析的文字:http://p.linode.com/7015
这里是匹配文本的替代品:
<item>\n\t<title>$2</title>\n\t<pubDate>$pubDate</pubDate>\n\t<description>$4</description>\n\t<link>$5</link>\n</item>\n\n
最后,这是我得到的输出:http://p.linode.com/7016
我几乎提出了将一段文本解析为RSS 2.0 XML标记所需的正则表达式。我已经使用RegExr和RegexBuddy对其进行了测试,除了之外,它在中完美地用于最后一个“项目”,其中链接后没有换行符(Line 269)。
简而言之,问题是文本中的“iProperty”文章不匹配。
任何正在帮我解决错误的正则表达式大师?
答案 0 :(得分:1)
我试过,我想我已经有了解决方案(我可以用它生成正确的输出文件),只需像这样修改你的正则表达式:
/(.*={76}\s)?\s*(.*?)\s\-\-\s(\d{2}\/\d{2}\-\d{2}\s\d{2}:\d{2})\s\s(.*?)\s(http:\/\/service.*?)(\s(\-{76})|$)/is
我刚刚在末尾添加了|$
,为OR语句添加了一些()
。