我需要一个正则表达式来匹配包含字母、数字、一些特殊字符和空格的字符串。但是,RegEx 必须拒绝仅由空格组成的字符串。 我创建了一个模式,但它不起作用。
import re
pattern = r"^[/<>'\.\,\-\?\[\] \w\d]+$"
print bool(re.match(pattern, "Hi, how are you?"))
print bool(re.match(pattern, "Hi, how are you? &*() "))
print bool(re.match(pattern, " "))
这是上一个片段的输出:
True
False
True
我需要第三个测试像第二个一样失败。 我知道我不仅可以使用正则表达式来做到这一点,但我想知道是否可以只使用正则表达式。 谢谢
最佳答案
您可以在您的正则表达式中使用否定前瞻:
patter = r"^(?!\s*$)[<>'.,?\[\] \w\d-]+$"
(?!\s*$)
是如果输入只有 0 个或更多空格则匹配失败的否定前瞻。
测试:
>>> print bool(re.match(patter, " "))
False
关于python - 如果整个字符串至少包含一个字母,则将整个字符串与空格匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33131738/