Python 检查输入变量是否匹配格式
Python check if input variable matches format
我正在尝试创建一个 'check' 以查看给定的 link 是否与特定模式匹配。这是我目前所拥有的:
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 link,从 https://www.youtube.com/watch?v=
开始到 11 个通配符结束。如何做到这一点?
使用startswith()
方法。
if love.startswith('https://www.youtube.com/watch?v='):
对于这样的 if 语句,您不需要 while 循环。如果你这样写,你的程序将不断打印出“NOT A YOUTUBE LINK”,因为你没有 break for else .如果您在 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
如果在 =
后正好需要 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}
).
我发现您的代码存在一些问题:
- 你不需要 while 循环,只要它不是 youtube,它就会结束你的计算机内存 link
- 你可以只检查字符串变量中是否有youtube.com。
- youtube 域可以是 **youtube.com`、youtu.be,也许还有一些我不知道的。我建议将它们全部放在一个列表中并检查。
我正在尝试创建一个 'check' 以查看给定的 link 是否与特定模式匹配。这是我目前所拥有的:
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 link,从 https://www.youtube.com/watch?v=
开始到 11 个通配符结束。如何做到这一点?
使用startswith()
方法。
if love.startswith('https://www.youtube.com/watch?v='):
对于这样的 if 语句,您不需要 while 循环。如果你这样写,你的程序将不断打印出“NOT A YOUTUBE LINK”,因为你没有 break for else .如果您在 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
如果在 =
后正好需要 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}
).
我发现您的代码存在一些问题:
- 你不需要 while 循环,只要它不是 youtube,它就会结束你的计算机内存 link
- 你可以只检查字符串变量中是否有youtube.com。
- youtube 域可以是 **youtube.com`、youtu.be,也许还有一些我不知道的。我建议将它们全部放在一个列表中并检查。