只有字符试图创造出与给定一个正则表达式它包含所有合法字符的功能,如果只包含这些字符的字符串将被检查。检查字符串包含从正则表达式
例如
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是正确的,无论差异有多小,这都是重复的。请看http://stackoverflow.com/questions/1323364/in-python-how-to-check-if-a-string-only-contains-certain-characters,它也包含更完整的答案。 –