文字列があり、この文字列の多くの条件をチェックしたいとしましょう。例えば:
- ×サイズです
- 空白がない
- 最後の文字は数字です
1~3のすべての条件を関数内で通常の標準的な方法で実行できます (if this and that etc')
しかし...どうすれば、Pythonスタイルの良い方法で1行でそれを行うことができますか?
次の単純なif
条件を使用できany
ます。
s='fdsfgsgsfds9'
if len(s)==7 and not any(c.isspace() for c in s) and s[-1].isdigit():
pass
必要以上に複雑かもしれませんが、これらの条件はすべて正規表現で確認できます。
たとえば、必要なサイズが 8 文字の場合、次のようにして 3 つの条件すべてを確認できます。
if re.match(r'\S{7}\d$', text):
print 'all conditions match'
1 つの方法は、正規表現を使用することです ( x
10 の an を想定):
if re.match(r"\S{10}(?<=\d)$", mystring):
# Success!
次のようなものを試してください
import re
def test(s):
return len(s)>=x and re.match("^\S*\d$", s)
これは、文字列の長さが少なくともx
であるかどうか、および末尾に数字文字が続く非スペース文字のシーケンスであるかどうかをテストします。