【问题标题】:Regex For AlphaNumeric with special chars带有特殊字符的 AlphaNumeric 正则表达式
【发布时间】:2017-06-01 10:19:24
【问题描述】:

我是正则表达式的新手,并试图找到一个正则表达式,它允许字母数字或文本,但不允许带有特殊字符(如“、”、“'”、“()”、“/”、“.”)的完整数字。

ex: aa12,--allowed
aa,-allowed
123-Not allowed
123,--not allowed
123,a--allowed.

字母数字-

\d*[a-zA-Z][a-zA-Z\d\s]*$

正在工作,但坚持包含特殊字符。有什么帮助吗?

【问题讨论】:

  • ^\S*[a-zA-Z]\S*$怎么样
  • 将所有特殊字符放在方括号中:[,'\(\)/"\.] 请注意,我用反斜杠转义了所有对正则表达式本身具有特殊含义的字符,例如 .
  • 数字部分和特殊字符在哪里? @anubhava
  • 因此你的意思是标题? @anubhava
  • 然后只需 \S*[a-z]+\S* 加上 i 标志以不区分大小写

标签: regex


【解决方案1】:

如果你只是想确保字符串包含一个字符,只需匹配

.*[a-zA-Z].*

如果您需要匹配整行。甚至更简单

[a-zA-Z][a-z]

最后一个如果你可以设置 不区分大小写 标志(你没有说明正则表达式风格)。如果文本中有一个字母,最后两个将简单地匹配。而且我看不出你要找的不是那个。

See it here at regex101.

【讨论】:

    【解决方案2】:

    可能我无法传达正在尝试解决的问题。我的情况是

    如果所有数字--错误 如果所有特殊字符--错误 如果只有数字+特殊字符--错误

    剩下的所有应该被标记为非错误。对于特殊字符,我得到一个特定的列表让它们进入。我尝试并最终尝试了下面的正则表达式似乎有效。任何优化? \d*([a-zA-Z,/().][a-zA-Z][,/().])[a-zA-Z\d\s]* $

    【讨论】:

    • 这是一个答案吗?因为它根本不起作用。 Check this。它需要一个特殊或字母字符,后跟一个字母字符,然后再跟一个强制 特殊字符 ,这不符合您的要求。而且 - 我建议的第一个怎么不起作用?它符合您提出的要求。也许您应该将其发布为对您问题的评论?
    • \d*([a-zA-Z,\/().]*[a-zA-Z][,\/().]*)[a-zA-Z\ d\s]*$ 是的..那应该在评论中。试图理解你的解释是正则表达式的意思是零个或多个数字然后零个或多个 alpha/special 然后 alpha 然后零个或多个特殊?
    • “试图理解你的解释”?该链接指向您的 正则表达式(此答案 中的最后一个),它根本不起作用。我在我的答案中。
    猜你喜欢
    • 1970-01-01
    • 2011-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-16
    • 2014-02-19
    相关资源
    最近更新 更多