我正在尝试进行“检查”,以查看给定的链接是否匹配特定的模式。这是我到目前为止的内容:
love = input("Enter URL: ")
while True:
if love == 'https://www.youtube.com/watch?v=*':
print("confirm, what is love?")
break
else:
print("NOT A YOUTUBE LINK")
love
应该是youtube链接,以https://www.youtube.com/watch?v=
开头,以11个通配符结尾。怎么会这样?
答案 0 :(得分:3)
使用startswith()
方法。
if love.startswith('https://www.youtube.com/watch?v='):
答案 1 :(得分:3)
如果在=
之后仅需要11个字符,则可以使用正则表达式:
import re
love = input("Enter URL: ")
if re.search(r"http://youtube.com/watch\?v=.{11}", love):
print("Valid")
else:
print("Invalid")
正则表达式模式中的.{11}
表示与任意字符(.
)完全匹配11次({11}
)。
答案 2 :(得分:2)
这样的 if 语句不需要while循环。如果以这种方式编写,则程序将连续打印“ NOT A YOUTUBE LINK”,因为您没有其他的中断。如果在 else 语句中放置了 break ,则 while循环没有用,因为无论如何都要尝试后停止程序。另外,使用 startswith()检查URL
如果要使用循环,可以按以下方式使用它:
def checkURL(inputURL):
if inputURL.startswith('https://www.youtube.com/watch?v='):
print("confirm, what is love?")
else:
print("NOT A YOUTUBE LINK")
while True:
love = input("Enter URL: ")
if love.lower() != "quit":
checkURL(love)
else:
break
答案 3 :(得分:1)
我发现您的代码存在一些问题: