需要一个允许特殊字符、字母数字字符和空格的字段正则表达式
我正在使用以下正则表达式:
[a-zA-Z0-9-#.()/%&\\s]{0,19}.
对该字段的要求是它应该允许任何内容,并且字段大小应该为 19。 如果有任何更正,请告诉我。如有任何帮助,我们将不胜感激。
I am using the following regex:
[a-zA-Z0-9-#.()/%&\\s]{0,19}.
The requirement for the field is it should allow any thing and the field size should be 19.
Let me know if any corrections.Any help is appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您只需要转义特殊字符即可。尝试:
您可以在 http://rubular.com/ 上测试您的正则表达式
You simply need to escape the special characters. Try:
You can test your regular expressions on http://rubular.com/
您的正则表达式至少在一方面是不正确的 - 如果您将连字符视为“特殊字符”,那么您应该将其放在范围的开头或结尾。所以:
[a-zA-Z0-9#.()/%&\s-]{0,19}
。如果正则表达式本身的上下文中的“特殊”字符位于某个范围内,则通常不会对其进行解析。所以你可以使用
.
、(
和)
。但请检查您的解析器以确保它理解\s
的含义。只需添加一个空格可能会更简单。另外,如果您的正则表达式解析器倾向于用斜杠分隔正则表达式,那么您可能必须转义范围中间的斜杠:
[a-zA-Z0-9#.()\/%&\ s-]{0,19}
。Your regex is incorrect in at least one way - if you're considering a hyphen to be a "special character", then you should put it at the beginning or end of the range. So:
[a-zA-Z0-9#.()/%&\s-]{0,19}
.Characters that are "special" within the context of the regex itself are often not parsed if they're inside a range. So you're fine with
.
,(
and)
. But check your parser to make sure that it understands what\s
means. It might be simpler just to put a space.Also, if your regex parser tends to delimit the regex with slashes, then you may have to escape the slash in the middle of the range:
[a-zA-Z0-9#.()\/%&\s-]{0,19}
.只需转义破折号
-
或将其放在字符类的开头或结尾:或
或
Just escape the dash
-
or put it at the begining or at the end of the character class:or
or