私のdjangoプロジェクトでユーザーのコメントを検証したいと考えています。 コメントでは、これらの文字は許可されていません: [*%&! = '; `]Pythonでコメントの検証に最適な正規表現は何ですか?
最高の正規表現は何ですか?
私のdjangoプロジェクトでユーザーのコメントを検証したいと考えています。 コメントでは、これらの文字は許可されていません: [*%&! = '; `]Pythonでコメントの検証に最適な正規表現は何ですか?
最高の正規表現は何ですか?
非常に正確にあなたの仕様を以下、正規表現^[^\[\]*%&!=\';`]*$
はあなたが記述まさにありません。それは一致します。
^ the start of the string
[^ any character that is not:
*%&!=\';` any of: [ ] * % & ! = ' ; `
]* 0 or more times
$ the end of the string
ので、Pythonで、
import re
pattern = re.compile(r'^[^\[\]*%&!=\';`]*$')
if pattern.match(my_string):
print('this is a valid comment')
else:
print('this is an invalid comment')
は、(ユーザーが、彼らは彼らのコメントに叫ぶない理由について混乱することができることを注意してください。また、あなたが一致しない場合!。空の文字列は、*
の代わりに+
を使用してください:^[^\[\]*%&!=\';`]+$
これにより、単語とスペースのみが許可されます。特殊文字が含まれている場合は破棄されます。
Check this regular expression here
^(?!\!\%\!\=\'\;\`)[\w\s\.\?\,]+$
あまりにもメタになる危険があるので、このコメントはどうですか?あなたの正規表現はカンマ、疑問符、およびピリオドのために一致しませんでした。 – KernelPanic
@KernelPanic申し訳ありません。わかりません。何言ってんの? –
この正規表現は、「有効な」文字とコメントが一致しません。疑問符は許可されていない文字のリストにはありませんが、あなたの正規表現には一致しません。 – KernelPanic
なぜこれらの文字を許可しないのでしょうか? – Scovetta