Pythonでは、文字列に特定の文字のみが含まれているかどうかを確認する方法は?
a..z、0..9、および .. のみを含む文字列をチェックする必要があります。(ピリオド) であり、他の文字はありません。
各文字を反復処理して、文字が a..z または 0..9、または ..9 であることを確認できます。しかし、それは遅いでしょう。
正規表現でそれを行う方法が今はわかりません。
これは正しいです?より単純な正規表現またはより効率的なアプローチを提案できますか?
#Valid chars . a-z 0-9
def check(test_str):
import re
#http://docs.python.org/library/re.html
#re.search returns None if no position in the string matches the pattern
#pattern to search for any character other then . a-z 0-9
pattern = r'[^\.a-z0-9]'
if re.search(pattern, test_str):
#Character other then . a-z 0-9 was found
print 'Invalid : %r' % (test_str,)
else:
#No character other then . a-z 0-9 was found
print 'Valid : %r' % (test_str,)
check(test_str='abcde.1')
check(test_str='abcde.1#')
check(test_str='ABCDE.12')
check(test_str='_-/>"!@#12345abcde<')
'''
Output:
>>>
Valid : "abcde.1"
Invalid : "abcde.1#"
Invalid : "ABCDE.12"
Invalid : "_-/>"!@#12345abcde<"
'''