检测特定字母序列内的代码

时间:2018-04-09 21:08:58

标签: python python-3.x

我使用语言代码,尤其是ISO 639-3标准,它使用三个字母代码来表示语言(英语为eng,日语为jpn等。)

但是,qaa–qtz范围内的代码不是正确的语言代码,但只是用户必须定义​​的空代码。所以,qaa,{{1 }} ... qabqaz等等。

我想知道如何编写能够检测代码是否属于此系列的代码?在这些代码中,最后一个字母一直通过az,然后从a开始第二个字母中的新序列。有点像三位数字,除了代替0-9位数字,它是a-z字母。

1 个答案:

答案 0 :(得分:3)

您可以使用正则表达式匹配模式' q [a-t] [a-z]'

轻松完成此操作
    import re
    a = ['abc','qaa','qbc','qtz','q12','qua','qabx']
    for i in a:
        if re.match('q[a-t][a-z]',i) and len(i) == 3:
            b = 'MATCH'
        else:
            b = 'NO MATCH'
        print('{} : {}'.format(i,b))

编辑:忘了做长度检查。如果没有它,正则表达式会在' qabx'这不适合你想要的模式。