2011-06-02 27 views
0

我得把用戶輸入的這種格式(字段1)(空間)HTML表單(域2)其中兩個字段1和字段2是字符串,但限制是:幫助以書面形式正則表達式

  • 字段1 &場2不能是整數
  • 他們必須是字母數字
  • 他們不應該用相同的字符開始

注意,這個模式可以重演,如:
abc def ghi jkl

+1

咦?我不明白你的解釋,但爲什麼你必須使用正則表達式? – Kaj 2011-06-02 19:00:49

+0

你想要什麼是不可能的。 「也許不是一個空間」意味着將無法決定場1結束和場2開始。還有,不能是整數,不能是字母數字......所以只能打印不可打印的字符?輸入製表符和回車到文本字段是這樣的樂趣... – 2011-06-02 19:02:43

+0

正則表達式將匹配模式,但我不認爲它會做很多比較,或者可能沒有儘可能多的細節,你想要去。 – alexcoco 2011-06-02 19:04:36

回答

3

字段1 &場2不能是整數

(?!\p{Digit}+\b) 

他們必須是字母數字

想必非空

\p{Alnum}+ 

他們不應該用相同的字符

需要捕獲的第一個字符捕獲組因此上述變成

(\p{Alnum})\p{Alnum}* 

開始,你需要一個負前瞻

(?!\1) 

把它放在一起,並允許分離你可以使用以下

Pattern.compile("^\\s*(?:(?!\\p{Digit}+\\b)(?!\1)(\\p{Alnum})\\p{Alnum}*\\s*)+\\Z");