2016-11-22 31 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

相關問題