2015-08-08 47 views
3

我爲包含1到4個非零數字字符或1到4個字符串的字符串寫入正則表達式4個非零數字字符和1個字母,但我堅持如何修復一個字母字符的長度。字符串正則表達式,它由1到4個非零數字字符或1到4個非零數字字符和1個字母組成

"(^[1-9]{1,4}$|^[[a-zA-Z][1-9]{1,4}]$)" 

我試過這種方式,但它不工作;它僅驗證由1到4個非零數字字符組成的字符串。

+0

怎麼樣的字符順序? 1234,123u,12u3,u123 - >全部可以接受,或者順序很重要? – sinisake

+0

所有可接受的像1234,123u4,12u34,1u234,u1234,1243u是有效字符串 –

回答

2
^(?:\d{1,4}|(?=\d*[a-zA-Z]\d*$)[\da-zA-Z]{2,5})$ 

你需要一個lookahead這個看演示。

https://regex101.com/r/eX9gK2/2

+1

偉大的,我知道它並不那麼微不足道,所以我不明白爲什麼這問題被投票結束。 :) – sinisake

+1

@nevermind nevermind:P – vks

+1

謝謝你的工作 –

0

通常,您最好的機會是使用在線工具來測試您的正則表達式,如http://www.regexr.com/

此外,你想達到什麼可以做這樣的:([a-zA-Z]?[1-9]{1,4})

說明:

  • [a-zA-Z]手段AZ字母字符
  • ?表示0或者前一組的1(什麼在您的測試中缺失)
  • [1-9]{1,4}意味着1到4個數字字符,就像您提到的那樣
+1

感謝您的迴應,但仍然有一個問題是there.I意味着字母字符不必是第一個字符。它可以在字符串中的任何地方,但應該只來曾經或沒有人喜歡「a1234」「1a222」,「12a22」,「123a2」,「1234a」,「1234」應該是有效的字符串 –

相關問題