如何限制REGEX中的特殊字符

how to restrict special chars in REGEXP

我正在验证文本框字段。在这里,我验证了下面的代码,它应该包含仅在正则表达式中允许的字符和十进制数字和空格。但现在我想这样做,它应该限制特殊字符。下面的代码允许特殊字符。谁能帮我做这个

  p = re.compile('[a-zA-z0-9_](\w+ ?)(?:([0-9])+([\,\.][0-9]+))?')

提前致谢

p = re.compile('([^~+&@!#$%]*)')。添加任何其他特殊字符。这将接受所有内容,直到您获得特殊字符。

或使用p = re.compile('^([^~+&@!#$%]*)$'),如果文本框中有特殊字符,这将失败。

你只需要使用锚点。

 p = re.compile(r'^[a-zA-z0-9_](\w+ ?)(?:([0-9])+([,.][0-9]+))?$')

锚点有助于进行精确的字符串匹配。