python中的正则表达式,用于检查字符串是否只包含字母,数字和点(。)

时间:2018-03-12 14:44:03

标签: python regex python-2.7

我正在尝试为匹配开发一个正则表达式,如果一个字符串只包含字母,数字,空格和点(。),并且没有任何顺序。

像这样:

hello223 3423.  ---> True
lalala.32 --->True
.hellohow1 ---> True
0you and me = ---> False (it contains =)
@newye ---> False (it contains @)
With, the name of the s0ng .---> False (it start with ,)

我正在尝试这个,但总是返回匹配:

m = re.match(r'[a-zA-Z0-9,. ]+', word)

有什么想法吗?

制定问题的其他方法是字母,数字,点和空格有什么不同的字符?

提前致谢

2 个答案:

答案 0 :(得分:2)

您需要添加$

re.match(r'[a-zA-Z0-9,. ]+$', word)

答案 1 :(得分:2)

re.search()解决方案:

import re

def contains(s):
    return not re.search(r'[^a-zA-Z0-9. ]', s)

print(contains('hello223 3423.'))    # True
print(contains('0you and me = '))    # False
print(contains('.hellohow1'))        # True