【发布时间】:2017-05-03 13:23:12
【问题描述】:
尝试使用给定的包含所有合法字符的正则表达式创建一个函数,如果字符串仅包含这些字符,则会被检查。 p>
例如
import re
legal_characters = r'[\*\-]' # Matches asterisc and dash characters
def is_legal(test_string):
if re.match(legal_characters, test_string):
print("Legal")
else:
print("Not legal")
is_legal("***---123") # should print "Not legal"
is_legal("AbC123") # should print "Not legal"
is_legal("*-*-*") # should print "Legal"
输出:
Not legal
Not legal
Not legal
我真的不明白为什么。有人可以解释一下吗?
【问题讨论】:
-
在 python 3.4 上测试:所有字符串都是合法的;
re仅匹配第一个字母 (<_sre.SRE_Match object; span=(0, 1), match='a'>)。 -
@hiroprotagonist 我选错了正则表达式。请查看修改后的描述..
-
TigerhawkT3 是对的,无论差异多么小,这都是重复的。请查看stackoverflow.com/questions/1323364/…,它也有更完整的答案。
标签: python regex python-3.x