我做了一个基本正则表达式来查找url:
([a-zA-Z0-9]+\.|)([a-zA-Z0-9\-])+\.[a-z]+[a-zA-Z0-9\?\/\=\-\_]*
子域的([a-zA-Z0-9]+\.|)
([a-zA-Z0-9\-])+
的主机名
\.[a-z]+
表示域
[a-zA-Z0-9\?\/\=\-\_]*
的路径
当我运行这个基本程序时
text = "test.google.com test.google.com"
urls = re.findall("([a-zA-Z0-9]+\.|)([a-zA-Z0-9\-])+\.[a-z]+[a-zA-Z0-9\?\/\=\-\_]*", text)
print(urls)
我得到这个输出
[('test.', 'e'), ('test.', 'e')]
我想这和我的正则表达式有关,但是什么? 谢谢!你知道吗
因为关于芬德尔当捕获组存在时,将返回所有捕获的字符。移除捕获组或将其转换为非捕获组将返回所有匹配的字符。你知道吗
https://regex101.com/r/efXF9D/1/
或者
如果您想分别捕获每个部分,则必须为每个部分使用适当的捕获组。你知道吗
https://regex101.com/r/efXF9D/2/
括号表示捕获组,这是findall返回的内容
相关问题 更多 >
编程相关推荐