我需要一个正则表达式匹配下面的链接模式如下。你知道吗
'https://website/1/extension1'
->;True
'https://website/1.1/extension1'
->;False
'https://website/1/#extension1'
->;False
我的正则表达式是
regex = re.compile('https://website/1[^\.]/*[^#]')
对第二种情况有效。但是我想知道为什么在link中出现#
的情况下它不返回False
。你知道吗
Tags:
正则表达式与
https://website/1/
前缀匹配,仅此而已。除了版本号之后的/
之外,字符串包含更多的文本并不重要。你知道吗您需要包括锚点,以确保您不只是匹配子字符串。使用
^
和$
锚定到字符串的开头和结尾,这样就没有空间容纳其他字符串了。您需要匹配不包含任何#
字符的路径:我还对主机名中的点进行了转义,您不希望匹配'any'字符,而是希望匹配literal
'.'
字符。\d
匹配一个数字(因此2
和3
对于主要的Python版本,不匹配更多)。你知道吗在线演示:https://regex101.com/r/gL7X7o/3
使用Python文档URL的Python演示:
相关问题 更多 >
编程相关推荐