2012-08-12 44 views
0

我想做一個正則表達式,但我是新手。而且好像我在這一次又一次的失敗..Android的正則表達式製作

請,如果有人能幫助我

基本上我想,對於下面的測試表達式,

1-東西以abc或def開頭,後面跟着0到900之間的數字,然後可以有任何東西,直到最接近的 !!

任何幫助將被視爲

問候

+0

你能舉個例子嗎? 「你的意思是」之間可以有任何東西,直到最近!!「 ? – 2012-08-12 10:35:48

+0

最近的「!!」 xD – 2012-08-12 10:59:44

+0

添加一些你想要捕捉的例子。 'then ...'部分難以理解 – 2012-08-12 12:28:54

回答

2

如果你想要這個abcXXX(0<xxx<900)defXXX (0<xxx<900)試試這個:

\b(abc)([0-9]|[1-9][0-9]|[1-8][0-9][0-9]|900)\b|\b(def)([0-9]|[1-9][0-9]|[1-8][0-9[0-9]|900)\b] 

說明:正則表達式[0-9]比賽的1位數字0到9. [1-9][0-9]匹配兩位數字10到99.這就是簡單一部分。所以0-9000-899900因此REGEX是[0-9]|[1-9][0-9]|[1-8][0-9][0-9]|900。添加\b()\bBoundary Matchers。與def類似:從def開始,後跟3位數字。

\b(def)([0-9]|[1-9][0-9]|[1-8][0-9][0-9]|900)\b 

最後用|or

測試與Regular Expression Test Page for Java

也許我沒有嘗試一些奇怪的輸入,但是這是基本的部分,爲您自己

編輯與艾倫·摩爾的更好建議挖:

\b(abc|def)([0-9]|[1-9][0-9]|[1-8][0-9][0-9]|900)\b 
+0

+1,但是yu不必重複整個正則表達式。這會做:'\ b(abc | def)([0-9] | [1-9] [0-9] | [1-8] [0-9] [0-9] | 900)\ b ' – 2012-08-12 22:33:42

0

以下正則表達式將與表達式的第一部分匹配。很難理解表達的第二部分。

東西與ABC或DEF開始,接着是編號0 和900

^(abc|def)([0-9]{1,2}|[1-8][0-9]{2}|900) 

之間我解釋下面的表達式。

^(abc|def) //Starts with abc or def 
(
    [0-9]{1,2}|[1-8][0-9]{2}|900 // matches number between 0-900 
)