【问题标题】:How to validate a string?如何验证字符串?
【发布时间】:2019-04-05 18:05:38
【问题描述】:

我只是想知道如何编写验证字符串的代码?例如,用户输入邮政编码(字符串)。我必须确保它遵循 L#L#L# 格式 L-> 仅代表一个字母,#-> 仅代表一个数字而不是十进制...如果不要求用户再次输入

【问题讨论】:

标签: python string format postal


【解决方案1】:

字符串方法 more info

对于您的示例,如果字符串是数字/字母,您可以使用 2 步检查字符串:

.isdecimal 检查构成基数为 10 的数字系统 (0-9) 的字符。

.isalpha 检查字母 (A-Z)

test_good = 'L5L5L5'
test_bad = 'LLLLLL'

def check_string(test):
    if test[0::2].isalpha() and test[1::2].isdecimal():
        return True
    else:
        return False

测试一下:

check_string(test_good)
>>>True

阴性测试:

check_string(test_bad)
>>>False

正则表达式 more info regexr

Regex 执行模式匹配操作,实际上还有更多。在下面的示例中,我提前编译了模式,以便它看起来很干净并且可以在需要时重复使用。

我还使用re.fullmatch(),它需要匹配提供的整个字符串,而不仅仅是其中的一部分。它本身会返回 None 或匹配对象,所以我检查它是否存在(意味着它匹配)并返回 True,否则(无)返回 False。

import re

def match(test):
    re_pattern = re.compile('[A-Z][0-9][A-Z][0-9][A-Z][0-9]')
    if re.fullmatch(re_pattern, test):
        return True
    else:
        return False

【讨论】:

  • @Saynab Aden 如果这个答案是正确的,请标记它
猜你喜欢
  • 2016-03-19
  • 2021-12-25
  • 1970-01-01
  • 1970-01-01
  • 2011-02-21
  • 2018-08-23
  • 2011-04-13
  • 2018-01-02
相关资源
最近更新 更多