只有字符試圖創造出與給定一個正則表達式它包含所有合法字符的功能,如果只包含這些字符的字符串將被檢查。檢查字符串包含從正則表達式
例如
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,它也包含更完整的答案。 –