【发布时间】:2021-02-18 01:53:44
【问题描述】:
我想验证具有以下位置字符约束的 8 个字符的字符串:
-
first 位置必须是以下字母之一:
A/M/P/B/S -
Second 和 third 位置是从
AA到ZZ的字母 -
第四位包含
1-4之间的数字 -
第五位包含
1-4之间的数字 -
第六 - 第八位必须是数字
000-999
如果不匹配,它将返回FALSE。这是我的代码:
import re
text = input("input:")
print(text)
check = re.search("[^S|B|M|P|A][AA-ZZ][1-4][1-4][000-999]", text)
if check:
print("TRUE")
else:
print("FALSE")
例如:AIK22001 Uotput 应该是“真”
在这里,我尝试过使用正则表达式 Python 库,但输出错误。它返回False 是否应该是True。
【问题讨论】:
-
欢迎来到 SO。也许首先尝试在tool like this 上测试和修复您的正则表达式,然后在 python 中实现它。不要忘记在我链接的工具中选择 python regex。
-
对不起,它怎么能真正打印出来。 'if else if' 语句只会在 'if' 为假且 'elif' 为真时运行 'elif'。如果输入了“if”,那么“elif”和“else”将不会运行。您在“if”语句中定义检查,因此“elif”不可能运行。我相信这只是您的拼写错误,您需要做的就是将检查设为单独的“if”语句。或将其移至“if”语句之前
-
这样的?
^[AMPBS][A-Z]{2}[1-4]{2}\d{3}$ -
if len(text) == 8,检查未定义。所以它会失败。只有当字符串的长度不等于 8 时,它才会进入并执行 re.search。你想先解决这个问题 -
你的问题是 if 语句不是正则表达式
标签: python regex if-statement