2016-10-29 158 views
0

如何在一個正則表達式中分配多個條件?多種條件的正則表達式

例如:我想要一個以特徵詞開始和結束的字符串,它可以在中間有空格,長度也可以是1。

所以我寫這篇文章:

(?=^[a-zA-Z0-9])(?=[a-zA-Z0-9]$)(?=^[a-zA-Z0-9 ]+$) 

但這不起作用。 我雖然這樣的:

(?=^[a-zA-Z0-9])字符串與開始到z以及0到9

(?=[a-zA-Z0-9]$)它也以相同字符

(?=^[a-zA-Z0-9 ]+$)結束,它可以包含許多A到Z,0到9和空格(與上述條件,這應該是在字符串中)

+0

爲什麼只使用lookaheads? – usr2564301

+0

@RadLexus我真的沒有得到使用ahad和落後,所以?=正在照顧...然後是什麼?第二個條件?或其他字符串或...? – deadManN

回答

2

爲什麼不乾脆:

^[a-zA-Z0-9][a-zA-Z0-9 ]+[a-zA-Z0-9]$ 

如果字符串可以使用一個字符:

^(?=[a-zA-Z0-9])(?=.*[a-zA-Z0-9]$)[a-zA-Z0-9 ]+$ 
+0

多數民衆贊成在3個字符最小,這就是爲什麼它不能簡單,所以你搬出了開始和結束,我也嘗試過,但我沒有添加。*,那是什麼?並且似乎我錯誤地將主要陳述放在第三個括號內? – deadManN

+1

@deadManN:第二個前瞻斷言在字符串末尾有1個字符之前有0個或更多個字符。你可以把主要陳述放在預見之內,但沒有必要這樣做。 – Toto