Python检查输入变量是否与格式匹配

时间:2020-10-30 23:12:28

标签: python if-statement youtube

我正在尝试进行“检查”,以查看给定的链接是否匹配特定的模式。这是我到目前为止的内容:

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个通配符结尾。怎么会这样?

4 个答案:

答案 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)

我发现您的代码存在一些问题:

  1. 您不需要while循环,只要它不是youtube链接,它将结束您的计算机内存
  2. 您只需检查字符串变量中是否 youtube.com
  3. youtube域可以是** youtube.com`, youtu.be ,也许还有一些我不知道的域。我建议将它们全部放在列表中并检查。
相关问题