【发布时间】:2016-05-15 00:00:24
【问题描述】:
我正在尝试为以下要求实施 2 个正则表达式。
-
合法字符:A-Z、a-z、0-9、连字符、撇号和单个空格。
非法字符:前导空格、尾随空格、相邻空格和其他符号。长度:最小 1 最大 35
为此,我尝试按如下方式实现正则表达式"^[ A-Za-z0-9'-]*$"。我未能实现尾随空格、相邻空格以及最小和最大长度。
- 合法字符: 来自“#x21;”的可打印字符到“#x7E;”和单一的空间。
非法字符:前导空格、尾随空格、相邻空格。长度:最小 1 最大 35
为此,我尝试了"^(?> *)[\x21-\x7F]+$"。我不知道如何实现尾随空格、相邻空格以及最小和最大长度。
谢谢。
【问题讨论】:
-
如果将
(?!.*\s\s)[ A-Za-z0-9'-]*替换为(\s(?!\s)|[A-Za-z0-9'-])*可能会快一点。我没有测试两者的性能。 -
感谢您的意见。但我认为它不能验证长度。
-
Ups... 是的... 将
*替换为{1,35}。 -
我尝试了你为第二个提供的变化。 "^(?!\s)(?!.*\s\s)[\x20-\x7F]{1,35}(?