搜索特定原始输入 python

Search for Specific raw input python

所以我正在尝试检查我的脚本以确保用户输入的格式正确。例如,我试图让用户输入一个如下所示的字符串:

0B/4B/07

我想确保脚本知道该字符串看起来应该与具有不同数字和字母的字符串完全一样,但总共 len 为 8 个字符,并且 / 正好位于这些位置。我知道应该有一种方法可以用 re 模块做到这一点,但我似乎无法弄清楚。有什么建议吗?

    import re


    def check(word):
        pattern = "^[0-9A-Z]{2,2}/[0-9A-Z]{2,2}/[0-9A-Z]{2,2}$"

        m = re.search(pattern,word)

        if m:
         print("true")
        else :
            print("false")

#############################
    > check('0B/4B/07')   o/p true 

    >check('0B/4B/075')   o/p false 

您可以为此使用正则表达式

或者 if len(x) == 8 and x[2] == '//' and x[5] == '//' @Tim Castelijns 建议的类似这样的东西

以下将测试用户输入是否与您的格式匹配 re.search,然后使用 re.findall 将每个匹配的元组分配给变量 matches[A-Za-z0-9] 匹配任何字母数字字符,而 {2} 表示前一个字符应该有两个匹配项。此外,() 中的换行字符表示您希望将它们 return 放在 re.findall.

import re

text = "0B/4B/07"

def get_input(text):
    if re.search("[A-Za-z0-9]{2}/[A-Za-z0-9]{2}/[A-Za-z0-9]{2}", text):
        matches = re.findall(
                     "([A-Za-z0-9]{2})/([A-Za-z0-9]{2})/([A-Za-z0-9]{2})",
                     text
                 )[0]
        return matches
    else:
        return None

用法:

>>> text = "0B/4B/07"
>>> get_input(text)
('0B', '4B', '07')