搜索特定的原始输入python

时间:2015-03-17 13:53:46

标签: python search input

所以我试着让我的脚本检查以确保用户输入的格式正确。例如,我试图让用户输入一个看起来像这样的字符串:

0B / 4B / 07

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

2 个答案:

答案 0 :(得分:1)

    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建议

这样的事情

答案 1 :(得分:0)

以下内容将测试用户输入是否与re.search格式匹配,然后使用re.findall将每个匹配的元组分配给变量matches[A-Za-z0-9]匹配任何字母数字字符,而{2}表示应该有前两个字符的两个匹配项。此外,在()中包装字符表示您要在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')