什么是在python中验证注释的最佳正则表达式?

时间:2017-02-22 03:36:16

标签: python regex django validation

我想在我的django项目中验证用户的评论。 在评论中,不允许使用这些字符: [*%& ! =' ; `]

什么是最好的正则表达式?

2 个答案:

答案 0 :(得分:2)

这将只允许单词和空格。如果它包含特殊字符,则会丢弃。

Check this regular expression here

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

答案 1 :(得分: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')

(请注意,您的用户可能会对他们的评论中可能不会惊呼的原因感到困惑。另外,如果您不想匹配空字符串,请使用+代替*^[^\[\]*%&!=\';`]+$