繁体   English   中英

正则表达式:仅数字+字母数字+特殊字符

[英]Regular expression: Numeric + alphanum + special characters Only

我正在尝试构建一个正则表达式,该表达式可以查找必须包含数字和字母数字值以及旁特殊字符的模式。 我找到了一个解决此类正则表达式但没有特殊字符的答案。

如何在正则表达式中包含特殊字符,包括: ^ $ =()_“'[\\ @]

^([0-9]+[a-zA-Z]+|[a-zA-Z]+[0-9]+)[0-9a-zA-Z]*$

你能解释一下吗?

正则表达式测试器: http : //regexlib.com/RETester.aspx

谢谢。

作为解决方案,我发现了以下正则表达式: ^(?=.*\\d)(?=.*[a-zA-Z]).{4,8}$

也许可以帮到您。

为什么这么复杂!

enum { numeric = 1; alpha = 2, special = 4; }

bool check(const std::string& s) {
   for(std::string::size_type i = 0; i < s.size; ++i) {
      if(is_numeric(s[i])) result |= numeric;
      if(is_alpha(s[i])) result |= alpha;
      if(is_special(s[i])) result |= special;
      if(result == numeric | alpha | special) 
         return true;
   }
   return false;
}

打字多一点,但脑部损伤更少

您的正则表达式由两部分组成,它们都必须捕获一条完整的行,因为它们介于行首( ^ )和行尾( $ )之间:

  1. ([0-9] + [a-zA-Z] + | [a-zA-Z] + [0-9] +)这是由两个正则表达式或( | )组成。 第一个正则表达式是一个或多个数字( [0-9]+ ),后跟一个或多个字母( [a-zA-Z]+ )。 此正则表达式与反大小写正则表达式相同或相反:一个或多个字母后跟一个或多个数字。
  2. 第二组说上述内容后跟一个零个或多个字母或数字的正则表达式( [0-9a-zA-Z]*

暂无
暂无

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

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