我对那个正则表达式 [^%()*+-\/=?@[\\]ªº´
¿'.]*` 有疑问。
我想避免里面的字符。它正在工作的正则表达式,但是当我设置像 DAVID, SC 这样的东西时,我可以保存表单,因为它有一个逗号,但这个字符不在正则表达式中。
请问你能帮帮我吗?
我对那个正则表达式 [^%()*+-\/=?@[\\]ªº´
¿'.]*` 有疑问。
我想避免里面的字符。它正在工作的正则表达式,但是当我设置像 DAVID, SC 这样的东西时,我可以保存表单,因为它有一个逗号,但这个字符不在正则表达式中。
请问你能帮帮我吗?
您没有考虑-
字符类内部的特殊含义[.....]
。
你必须要么把破折号放在最后,要么用反斜杠转义它:
[^%()*+\/=?@\[\]ªº´¿'.-]*
在您的原始正则表达式中,+-\/
不允许ASCII 表之间+
和中的任何字符;/
这些是逗号、点和破折号。您的示例输入包含一个逗号,因此正则表达式没有一次匹配所有输入。
我还修复了从to[]
字符的转义,我认为这是一个错误。[\\]
\[\]
因为您使用*
的是[^%()*+\/=?@[\\]ªº´¿'.-]*
行开始/结束锚点。*
表示匹配字符类中的 0 个或多个前面的组/模式,您的正则表达式甚至可以匹配一个空字符串。
使用这个正则表达式:
^[^%()*+\/=?@[\\-]ªº´¿'.]+$
PS:连字符-
应该是字符类中最后一个位置的一个或第一个或,以避免转义。