Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 检测特定字母序列中的代码_Python_Python 3.x - Fatal编程技术网

Python 检测特定字母序列中的代码

Python 检测特定字母序列中的代码,python,python-3.x,Python,Python 3.x,我使用语言代码,特别是标准,它使用三个字母代码来表示语言(英语为eng,日语为jpn,等等) 但是,qaa–qtz范围内的代码不是正确的语言代码,而是用户必须定义的空代码。因此,qaa,qab…qaz,qba,等等 我想知道如何编写能够检测代码是否属于本系列的代码?在这些代码中,最后一个字母穿过a-z,然后从第二个字母中的新序列开始。有点像一个三位数的数字,除了0-9位数之外,它是a-z字母 通过与模式“q[a-t][a-z]”匹配的正则表达式,您可以轻松做到这一点 import re

我使用语言代码,特别是标准,它使用三个字母代码来表示语言(英语为
eng
,日语为
jpn
,等等)

但是,
qaa–qtz
范围内的代码不是正确的语言代码,而是用户必须定义的空代码。因此,
qaa
qab
qaz
qba
,等等


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

通过与模式“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”上找到一个正匹配项,它不符合您想要的模式。

您可以通过正则表达式匹配模式“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”上找到一个正匹配项,它不符合您想要的模式。

正则表达式可以轻松地处理这个问题。请参阅。这看起来很简单,即使不知道关于regex的任何信息:
code[0]=='q'和'a'此外,PyPI上是否已经有用于此的库?这似乎是一个足够普遍的东西,会有。@abarnert有,但它已经过时了(大约三年了)。那呢?据我所知,您链接到的是一个分支(属于)
pycountry
,该分支由一个不喜欢他们在大约3年前可能进行的更改的人创建(并且它也从LGPL重新授权为AGPL,如果您的主程序与AGPL不兼容,这可能是一个问题)。正则表达式可以轻松地处理这个问题。请参阅。这看起来很简单,即使不知道关于regex的任何信息:
code[0]=='q'和'a'此外,PyPI上是否已经有用于此的库?这似乎是一个足够普遍的东西,会有。@abarnert有,但它已经过时了(大约三年了)。那呢?据我所知,你链接到的是一个(部分)
pycountry
的分支,有人不喜欢3年前可能发生的变化(而且它也从LGPL重新许可到AGPL,如果你的主程序与AGPL不兼容,这可能是个问题)。无需进行长度检查,只需将
^
放在图案的前面,将
$
放在末尾。无需进行长度检查,只需将
^
放在图案的前面,将
$
放在末尾即可。