如何编写正则表达式以返回url中的关键字?

时间:2018-12-21 09:09:45

标签: python regex

我们要编写一个正则表达式来根据某些关键字查询网址

例如,当我们输入“ google”时。正则表达式应帮助我们找到以下网址:

https://www.google.com

https://api.google.com/help

https://www.apigoogle.com/example/02.js

https://www.googleapi.com/02/example/02.js

当前我的正则表达式是,“ sites”是输入值:

^ http(s)?://([a-z0-9-] +。)+(“ +站点+”)。(com | net)/?$

它仅与第一个匹配,我如何完成我的Regex ...?

2 个答案:

答案 0 :(得分:2)

主要目的是检查关键字是否在域部分内。

  1. ^(http\w?.{3})从两种协议开始
  2. ([^\/]*?google[^\/]*?)检查域部分是否具有关键字。为避免匹配超过指定区域,请匹配\
  3. (?=\/|$)的主要部分应该是文本的结尾,或者后面是\

代码:

import re


regex = lambda keyword: r"^(http\w?.{3})([^\/]*?%s[^\/]*?)(?=\/|$)"%keyword

text = """
https://www.google.com

https://api.google.com/help

https://www.apigoogle.com/example/02.js

https://www.googleapi.com/02/example/02.js

https://www.abcd.com/red?=www.google.com

https://www.googleapi.com/02/example/03.js
"""

for e in text.split():
    if re.search(regex("google"),e):
        print(e)

答案 1 :(得分:0)

这应该对您来说很好。

^((https)\:\/\/)(([a-z0-9])+\.)*(google|apigoogle\.com)

Test