当html链接没有href="http://www.example.com"
时,我在使这个正则表达式工作时遇到了一些麻烦。 <ul class='social'>(...)</ul>
始终存在于每个页面上,但某些锚标记会遗漏href
属性。
正是在这里,我的尝试失败了,因为当href=""
在那里时,我能够用
<a href="(.*?)" id="facebooklink" style="display:none;" class="facebook facebooklink" title="Become a fan on Facebook">Become a fan on Facebook<span></span></a>
另一方面,如果案例与下面的情况类似,如果缺少一个或多个href
,则即使具有href
属性和值的<ul class="social">
<li>
<a id="facebooklink" style="display:none;" class="facebook facebooklink" title="Become a fan on Facebook">Become a fan on Facebook<span></span></a>
</li>
<li>
<a href="https://twitter.com/StackOverflow" id="twitterlink" style="display:none;" class="twitter twitterlink" title="Follow us on Twitter">Follow us on Twitter<span></span></a>
</li>
<li>
<a id="linkedinlink" style="display:none;" class="linkedin linkedinlink" title="Follow us on LinkedIn">Follow us on LinkedIn<span></span></a>
</li>
</ul>
也不会捕获。在我的示例中,它至少应该捕获https://twitter.com/StackOverflow组。
我正在使用的正则表达式可以在这里看到:https://regex101.com/r/iJ9tC7/12
from Tkinter import *
Calculette=Tk()
Calculette.title("Calculette")
Chiffres=StringVar
B7=Button(Calculette, text="7").grid(column=0, row=1)
B8=Button(Calculette, text="8").grid(column=1, row=1)
B9=Button(Calculette, text="9").grid(column=2, row=1)
B4=Button(Calculette, text="4").grid(column=0, row=2)
B5=Button(Calculette, text="5").grid(column=1, row=2)
B6=Button(Calculette, text="6").grid(column=2, row=2)
B1=Button(Calculette, text="1").grid(column=0, row=3)
B2=Button(Calculette, text="2").grid(column=1, row=3)
B3=Button(Calculette, text="3").grid(column=2, row=3)
Bfois=Button(Calculette, text="x").grid(column=3, row=3)
Bmoins=Button(Calculette, text="-").grid(column=3, row=2)
Bdivision=Button(Calculette, text="/").grid(column=3, row=4)
Bplus=Button(Calculette, text="+").grid(column=3, row=1)
Begal=Button(Calculette, text="=").grid(column=3, row=5)
Affichage=Entry(Calculette, textvariable=Chiffres).grid(column=0, row=0)
Calculette.mainloop
提前感谢您对此问题的任何帮助,我已经尝试了很多可能的解决方案,但不是正确的解决方案。
答案 0 :(得分:0)
回答我的问题,经过多次尝试用正则表达式来解决问题,因为问题已经出现,并且在来到这里试图向我提出问题的人的帮助下,我找到了一个适用于元素上缺少href=""
属性。
由于curl
的结果可能有或没有它,但块总是在那里,我只是为这三个链接添加了以下php代码:
$result = str_replace('<a id="facebooklink"','<a href="NULL" id="facebooklink"', $result);
$result = str_replace('<a id="twitterlink"','<a href="NULL" id="twitterlink"', $result);
$result = str_replace('<a id="linkedinlink"','<a href="NULL" id="linkedinlink"', $result);
这样做是为了从元素中添加缺少的href=""
,现在,即使一个失败,其他人也会返回匹配。
由于系统处理得很好而且在这一点上并不那么昂贵,但并不那么担心它。