我对正则表达式有问题[^%()*+-\/=?@[\\]ªº´
¿'。] *`。
我想避开里面的人物。它正在运行的正则表达式但是当我设置像DAVID这样的东西时,我可以保存表单,因为它有一个逗号,但是这个字符不在正则表达式中。
你能帮我吗?
答案 0 :(得分:2)
您没有考虑字符类-
中[.....]
的特殊含义。
您必须将短划线放在最后,否则使用反斜杠将其转义:
[^%()*+\/=?@\[\]ªº´¿'.-]*
在原始正则表达式中,+-\/
不允许ASCII表中+
和/
之间的任何字符;这些是逗号,点和破折号。您的示例输入包含逗号,因此正则表达式不会立即匹配所有输入。
我还修复了从[]
到[\\]
的{{1}}字符的转义,我认为这是一个错误。
答案 1 :(得分:1)
因为您在*
中使用了[^%()*+\/=?@[\\]ªº´¿'.-]*
行开头/结尾锚点。 *
表示匹配字符类中前面的组/模式中的0个或更多,并且正则表达式甚至可以匹配空字符串。
使用此正则表达式:
^[^%()*+\/=?@[\\-]ªº´¿'.]+$
PS :连字符-
应该是或者是第一个或在字符类的最后位置,以避免转义。