1

假设我有一个字符串,我想检查这个字符串的很多条件。例如:

  1. 它的大小为 x
  2. 没有空格
  3. 最后一个字母是数字字符

1-3中的所有条件都可以在函数中以常规标准方式完成(如果这个和那个等)

但是......我将如何以一种好的 python 风格的方式在一行中做到这一点?

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 个字符,您可以使用以下命令检查所有三个条件:

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

一种方法是使用正则表达式(假设x为 10):

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 回答