1

文字列があり、この文字列の多くの条件をチェックしたいとしましょう。例えば:

  1. ×サイズです
  2. 空白がない
  3. 最後の文字は数字です

1~3のすべての条件を関数内で通常の標準的な方法で実行できます (if this and that etc')

しかし...どうすれば、Pythonスタイルの良い方法で1行でそれを行うことができますか?

4

4 に答える 4

7

次の単純なif条件を使用できanyます。

s='fdsfgsgsfds9'
if len(s)==7 and not any(c.isspace() for c in s) and s[-1].isdigit():
    pass
于 2012-05-23T19:24:01.240 に答える
5

必要以上に複雑かもしれませんが、これらの条件はすべて正規表現で確認できます。

たとえば、必要なサイズが 8 文字の場合、次のようにして 3 つの条件すべてを確認できます。

if re.match(r'\S{7}\d$', text):
    print 'all conditions match'
于 2012-05-23T19:15:37.310 に答える
4

1 つの方法は、正規表現を使用することです ( x10 の an を想定):

if re.match(r"\S{10}(?<=\d)$", mystring):
    # Success!
于 2012-05-23T19:16:12.573 に答える
1

次のようなものを試してください

import re
def test(s):
    return len(s)>=x and re.match("^\S*\d$", s)

これは、文字列の長さが少なくともxであるかどうか、および末尾に数字文字が続く非スペース文字のシーケンスであるかどうかをテストします。

于 2012-05-23T19:15:49.080 に答える