現在、ArcMap 10 (updateMessages) のツール パラメーターの検証コードを作成していますが、ユーザーが文字列内で英数字以外の文字を使用できないようにする必要があります。これは、フィーチャクラスで新しく作成されたフィールドに名前を付けるために使用されるためです。
これまで「str.isalnum()」を使用してきましたが、もちろんアンダースコアは除外されます。英数字とアンダースコアのみを受け入れる効率的な方法はありますか?
if self.params[3].altered:
#Check if field name already exists
if str(self.params[3].value) in [f.name for f in arcpy.ListFields(str(self.params[0].value))]:
self.params[3].setErrorMessage("A field with this name already exists in the data set.")
#Check for invalid characters
elif not str(self.params[3].value).isalnum():
self.params[3].setErrorMessage("There are invalid characters in the field name.")
else:
self.params[3].clearMessage()
return