繁体   English   中英

我知道此正则表达式可以简化-.NET

[英]I know this regex can be simplified - .NET

这是我的要求:

  • 1-80个字符
  • 允许使用以下字符:
    • 字母数字
    • 空格
    • _ ( ) [ ] ! # , . & * + : ' / -

我下面使用的正则表达式可以工作,但是特别是我不确定如何重用字符类[\\w\\(\\)\\.\\-\\[\\]!#,&*+:'\\/]

[\w\(\)\.\-\[\]!#,&*+:'\/][\w\s\(\)\.\-\[\]!#,&*+:'\/]{0,79}

更新:

感谢您的所有回答,这是成功的窍门

^(?!\s)[\w\s().\-!#&]{1,80}$

真的需要100%正则表达式吗? 你不能只是做

[\w\s\(\)\.\-\[\]!#,&*+:'\/]{1,80}

并分别验证第一个字符不是空格?

在字符类中,只有]\\需要转义。 甚至-如果是班级的第一个角色,也不需要逃脱!

这是我可以将其简化为的最简单的正则表达式:

[- \w().[\]!#,&*+:'/]{1,80}

如果第一个字符不能为空格,请尝试以下操作: (?!\\s)[-\\w\\s().[\\]\\\\!#,&*+:'/]{1,80} 您可能想在括号前加^,在结尾加$ ^(?!\\s)[-\\w\\s().[\\]\\\\!#,&*+:'/]{1,80}$ ,使正则表达式与整个字符串匹配。

您可以使用否定的前瞻来检查第一个字符不是空格。 这样就无需重用字符类。

(?!\s)[\w\s\(\)\.\-\[\]!#,&*+:'\/]{1,80}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM