【问题标题】:Regex checking whether string contains digits, letters, spaces, new lines and only allowed characters正则表达式检查字符串是否包含数字、字母、空格、换行符和仅允许的字符
【发布时间】:2015-01-28 18:55:27
【问题描述】:

我正在尝试创建仅当字符串仅包含以下内容时才匹配的正则表达式:

  • a-z 和 A-Z(字母)
  • 0-9(位数)
  • 空格和换行
  • 字符:!@#%^*()_-=+[]{};:,.?/

因此,如果我的字符串包含不在此列表中的字符,则正则表达式不应匹配。

例子:

AS55DSFs2afds23423ASAS as2 /sd/%%% - 匹配

$$ $Sfs dG@?423 - 不匹配(不允许使用美元符号)

匹配字母和数字很容易:

^([A-Za-z0-9]*)$

但我对空格、换行符和特殊字符有疑问。

回答

 ^([A-Za-z0-9\s!@#%^*()_\-=+\[\]{};:,.?\/]*)$

【问题讨论】:

    标签: regex


    【解决方案1】:

    空白字符被\s覆盖:

    ^([A-Za-z0-9\s]*)$
    

    对于特殊字符,您可以将它们单独添加到上述字符类中,但您需要将字符-、[和]转义:

    ^([A-Za-z0-9\s!@#%^*()_\-=+\[\]{};:,.?/]*)$
    

    【讨论】:

    • 好的。这很有帮助。特殊字符列表呢?
    【解决方案2】:
    ^[!@#%^*()_=+\[\]{};:,\.\?\/\sA-Za-z0-9-]+$
    

    这应该为你做。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-30
    • 2022-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-19
    相关资源
    最近更新 更多