我试图使用正则表达式从凌乱的文本数据中提取网址。我过去常常匹配[\w.]+[a-zA-Z]{2,4}
表现出我预期的行为:找到连续的字母数字和点,然后以2~4个字母结束,如com / net / gov。它不完美但足以供我使用。
现在我想改进一下语法:我想找到所有字母数字由一个点组成,多次重复该模式,然后以2~4个字母结束。这会排除"abc....com"
之类的内容。但是,这次结果让我很困惑:
test = 'www.1f23123.asda.com'
re.findall(r'(\w+\.){1,}[a-zA-Z]{2,4}', test)
,结果为['asda.']
有人可以向我解释这里出了什么问题吗?
答案 0 :(得分:0)
您正在打印捕获的组,尝试添加?:使其成为非捕获组,以便打印整个匹配
test = 'www.1f23123.asda.com'
match = re.findall(r'(?:\w+\.){1,}[a-zA-Z]{2,4}', test)
print match
答案 1 :(得分:0)