2013-03-29 29 views

回答

2

檢查與正則表達式的字符串的長度,你可以使用look ahead機制,並在正則表達式的開頭添加(?=^.{0,8}$)^是表示數據開始的錨點,$表示結束。

但在你的情況,我可能會使用類似

someString.matches("^(|[a-zA-Z]\\d{0,7})$") 

它將接受

  • 空字符串,
  • 包含在開始只有一個字母和高達7個位數的字符串。
+0

但字符可能是2長度 –

+0

@SanqiangZhao你可以[[編輯](http://stackoverflow.com/posts/15709526/edit)]你的問題,並提供正確和不正確的字符串的例子,因爲'字符串以字符開頭與數字'是爲了模糊我。我有幾個正則表達式的想法,但想看看哪一個發佈:) – Pshemo

+0

@SanqiangZhao這些字符串應該是正確的:'''''','''''''''''''''''''''' ,「ab」,「a1」,「b11」,「b1b」,「aa12」,「a1b2」? – Pshemo

0

我認爲這會工作([a-zA-Z]|[0-9]){0,8}

如果沒有嘗試 使用這個工具gskinner 或者www.rubular.com

+0

這並不要求第一個字符(如果存在)是一個字母。 「0」會傳遞這個表達式。 – DocMax

+0

確定添加'^'要像'^([a-zA-Z] | [0-9]){0,8}'只傳遞開始字 –

+0

這仍然不能解決問題,這是那個'([a-zA-Z] | [0-9])'允許任何字母或任何數字。你需要一個字母后跟1-7的任何字母/數字,使整個事情可選。 – DocMax

相關問題