如何用正则表达式编写链接解析器

时间:2015-11-20 03:58:40

标签: regex

我有一句话:“a herf = sdfsjkdhfks http://www.google.com 134”

我想只在有“<”时才能得到“http://www.google.com”部分在开头和“>”最后

现在我的正则表达式是“(?i)(http)(s:|:)。+ \。[A-Za-z] {2,} /?”

我可以做些什么来检查箭头括号是否存在而不将其作为正则表达式的一部分,我的意思是,我不希望箭头括号成为匹配的输出“

< p>

在这种情况下,输出应为null,因为没有箭头括号,但如果有,我希望输出只是“www.google.com”

提前致谢

2 个答案:

答案 0 :(得分:-1)

将括号作为正则表达式的一部分包含在内,然后在找到匹配项后的第二步,在返回结果之前将其从结果字符串中删除。

如果你将有角度的括号锚定到正则表达式的开头和结尾,这可能就像.substring(1,matchedString.length() - 1)这样简单。

答案 1 :(得分:-1)

这将使链接部分在开始和结束时跳过任何东西。

import re
content  = "<ahref = 123 http://googl 235>"
re.findall("<a[\s]*href[\s]*=.*(http://[^> ]*)[\s]*.*>",content)