python - 如果整个字符串至少包含一个字母,则将整个字符串与空格匹配

标签 python regex string python-2.7

我需要一个正则表达式来匹配包含字母、数字、一些特殊字符和空格的字符串。但是,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/

相关文章:

python - Pycharm 输入键不起作用

python - 从 MySQL 快速更新 Cassandra

C printf 数组并获取 open_stackdumpfile 错误

c++ - 无法理解 C++ 中的 istringstream

在 std::string 上使用 malloc/realloc/free 时出现 C++ 内存错误

python - 使用多个 list 文件从 S3 加载到 Redshift?

python - Windows 8.1 上的 Pyusb - 没有可用的后端 - 如何安装 libusb?

java - 为什么正则表达式 [^-?0-9]+ 忽略 '?' ?

regex - 我必须如何声明 Perl 拆分的正则表达式?

Python 正则表达式 : How to implement a regex expression that checks for matching set of brackets?