我们要编写一个正则表达式来根据某些关键字查询网址
例如,当我们输入“ google”时。正则表达式应帮助我们找到以下网址:
https://www.apigoogle.com/example/02.js
https://www.googleapi.com/02/example/02.js
当前我的正则表达式是,“ sites”是输入值:
^ http(s)?://([a-z0-9-] +。)+(“ +站点+”)。(com | net)/?$ >
它仅与第一个匹配,我如何完成我的Regex ...?
答案 0 :(得分:2)
主要目的是检查关键字是否在域部分内。
^(http\w?.{3})
从两种协议开始([^\/]*?google[^\/]*?)
检查域部分是否具有关键字。为避免匹配超过指定区域,请匹配\
(?=\/|$)
的主要部分应该是文本的结尾,或者后面是\
代码:
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)