2017-02-22 3 views

答えて

2

非常に正確にあなたの仕様を以下、正規表現^[^\[\]*%&!=\';`]*$はあなたが記述まさにありません。それは一致します。

^    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') 

は、(ユーザーが、彼らは彼らのコメントに叫ぶない理由について混乱することができることを注意してください。また、あなたが一致しない場合!。空の文字列は、*の代わりに+を使用してください:^[^\[\]*%&!=\';`]+$

2

これにより、単語とスペースのみが許可されます。特殊文字が含まれている場合は破棄されます。

Check this regular expression here

^(?!\!\%\!\=\'\;\`)[\w\s\.\?\,]+$ 
+0

あまりにもメタになる危険があるので、このコメントはどうですか?あなたの正規表現はカンマ、疑問符、およびピリオドのために一致しませんでした。 – KernelPanic

+0

@KernelPanic申し訳ありません。わかりません。何言ってんの? –

+0

この正規表現は、「有効な」文字とコメントが一致しません。疑問符は許可されていない文字のリストにはありませんが、あなたの正規表現には一致しません。 – KernelPanic