match
尝试匹配 字符串。使用search
代替。然后,以下模式将满足您的要求:
m = re.search(r"//([^/]*)", str)
print m.group(1)
基本上,我们正在寻找/
,然后消耗尽可能多的非斜杠字符。那些非斜杠字符将被捕获在组号1中。
实际上,有一种更高级的技术可以执行此操作,但不需要捕获(通常很耗时)。它使用所谓的lookbehind:
m = re.search(r"(?<=//)[^/]*", str)
print m.group()
在实际比赛中不包括环顾四周,因此是理想的结果。
此(或任何其他合理的正则表达式解决方案)不会.
立即删除。但这可以在第二步中轻松完成:
m = re.search(r"(?<=//)[^/]*", str)
host = m.group()
cleanedHost = host.replace(".", "")
那甚至不需要正则表达式。
当然,如果您想删除除字母和数字之外的所有内容(例如www.regular- expressions.info
变成wwwregularexpressionsinfo
),那么最好使用regex版本的replace
:
cleanedHost = re.sub(r"[^a-zA-Z0-9]+", "", host)