プログラムで文字列を使用できるのは、アンダースコア以外の特殊文字が含まれていない場合のみ_
です。これを確認するにはどうすればよいですか?
unicodedataライブラリを使ってみました。ただし、特殊文字は標準文字に置き換えられました。
このように使用string.punctuation
してany
機能できます
import string
invalidChars = set(string.punctuation.replace("_", ""))
if any(char in invalidChars for char in word):
print "Invalid"
else:
print "Valid"
この行で
invalidChars = set(string.punctuation.replace("_", ""))
使用できない句読文字のリストを準備しています。_
許可したいので_
、リストから削除し、新しいセットをとして準備していinvalidChars
ます。セットではルックアップが高速であるため。
any
関数はTrue
、文字の少なくとも1つがにある場合に戻りinvalidChars
ます。
編集:コメントで尋ねられたように、これは正規表現ソリューションです。https://stackoverflow.com/a/336220/1903116から取得した正規表現
word = "Welcome"
import re
print "Valid" if re.match("^[a-zA-Z0-9_]*$", word) else "Invalid"
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加