我正在尝试将正则表达式合并到我的bs4项目中。
<a href="/event/football">football</a>
<a href="/event/rugby-union">Rugby Union</a>
<a href="/event/ladies/football">Ladies Soccer</a>
<a href="/event/womens/rugby-union">Womens Rugby</a>
我只想匹配只有两个正斜杠的前两个。我已经尝试过下面的代码,但是它不起作用。我的正则表达式非常贫乏,不胜感激。
for event in events.find_all('a', href=re.compile('^/event/[^/]')):
要匹配其中只有2个部分的href,您需要
r'^/event/[^/]+$'
^^
请参阅regex演示。
的+
量词匹配1个或多个量化子模式和所述$
锚定字符串的结尾,所以没有更多的部分被允许相匹配。
要禁止所有以结尾的href值-cancelled
,请添加负向前行((?!.*-cancelled$)
如果/event/
后面跟有任何0+字符,并且-cancelled
在字符串($
)的末尾,则匹配失败):
r'^/event/(?!.*-cancelled$)[^/]+$'
(此处的演示)或带有回首标记((?<!-cancelled)
到达字符串末尾后将执行一次,如果-cancelled
字符串末尾有右对齐,则匹配失败):
r'^/event/[^/]+$(?<!-cancelled)'
参见另一个正则表达式演示。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句