2016-11-22 32 views
0

首先表达 - 必须有至少1个字母:如何使用AND运算符连接两个表达式?

^[a-zA-Z]{1,}$ 

第二个表达式 - 只能有字符从列表:a-zA-Z0-9.&@-+_!$%(space),最小1和最大11:

^[a-zA-Z0-9.&@\-+_!$% ]{1,11}$ 

我想连接这两个表达式使用AND运算符。 但是,下面的代码无法正常工作:

^(?=[a-zA-Z]{1,})(?=[a-zA-Z0-9.&@\-+_!$% ]{1,11})$ 
+0

你是什么意思正是通过和结束时声明持何立场?表达式应该同时满足*两个*表达式吗?你能给我们提供关于这个问题正在试图解决的更多细节吗? – fralau

+1

你的第一个表情并不意味着你的想法;相反,它的意思是“只包含*一个或多个字母”。 – ruakh

+0

它可以是,例如:67 @ g83 - 总是必须至少有一个字母 – MrChudz

回答

1

你可以试试:

^(?=.*[a-zA-Z]+)[a-zA-Z0-9.&@\-+_!$% ]{1,11}$ 

Explanation

  1. ^断言在一行
  2. 正向前查找的起始位置( ?=。* [a-zA-Z] +)
  3. 匹配li中存在的单个字符ST低于[a-zA-Z0-9.&@\-+_!$% ]{1,11}
  4. {1,11}量词 - 介于1个11倍(贪婪)匹配
  5. $在一行
+0

这完全是我所需要的 - thx非常多:) – MrChudz

相关问题