-1

文字列をチェックして、文字列内の文字の少なくとも 1 つが文字または数字であるかどうかを確認したいと考えています。どうすればいいですか?

4

3 に答える 3

3

あなたが使用することができますre.search

if re.search(r'[a-zA-Z\d]', string):

文字列に少なくとも文字または数字が含まれている場合、一致オブジェクトが返されます。

例:

>>> s = "foo0?"
>>> re.search(r'[a-zA-Z\d]', s)
<_sre.SRE_Match object; span=(0, 1), match='f'>
>>> s = "???"
>>> re.search(r'[a-zA-Z\d]', s)
>>> s = "???0"
>>> re.search(r'[a-zA-Z\d]', s)
<_sre.SRE_Match object; span=(3, 4), match='0'>
>>> 
于 2015-02-26T14:53:26.370 に答える
3

str.isalnum:

In [16]: s = "foo"    
In [17]: s.isalnum()
Out[17]: True
In [20]: s = "123"
In [21]: s.isalnum()
Out[21]: True
In [22]: s = "foo123"
In [23]: s.isalnum()
Out[23]: True

次に、いずれかを使用します。

any(x.isalnum() for x in  s)

In [24]: s = "!@1"   
In [25]: any(x.isalnum() for x in  s)
Out[25]: True
In [27]: s = "!@()"
In [28]: any(x.isalnum() for x in  s)
Out[28]: False

英字または数字が見つかった場合は短絡し、文字列にどちらも含まれていない場合は False を返します。

于 2015-02-26T14:53:55.190 に答える