正则表达式#的/

用户名

我正在尝试将正则表达式合并到我的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/[^/]')):
威克多·斯特里比尤(WiktorStribiżew)

要匹配其中只有2个部分的href,您需要

r'^/event/[^/]+$'
              ^^

请参阅regex演示

+量词匹配1个或多个量化子模式和所述$锚定字符串的结尾,所以没有更多的部分被允许相匹配。

要禁止所有以结尾的href值-cancelled,请添加负向前行((?!.*-cancelled$)如果/event/后面跟有任何0+字符,并且-cancelled在字符串($的末尾,则匹配失败):

r'^/event/(?!.*-cancelled$)[^/]+$'

此处的演示)或带有回首标记((?<!-cancelled)到达字符串末尾后将执行一次,如果-cancelled字符串末尾对齐,则匹配失败):

r'^/event/[^/]+$(?<!-cancelled)'

参见另一个正则表达式演示

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章