2016-12-03 89 views
0

應該是什麼樣的輸入正則表達式:什麼是FF a b FF的正則表達式?

FF a b FF 

其中ab可任意組合爲如下─

FF 1 2 FF 
FF A C FF 
FF F D3 FF 
FF EF 1C FF 

我一直在使用/(FF [a-zA-Z0-9] [a-zA-Z0-9] FF)/g試圖給出,但不匹配。

我自己也嘗試(FF .... FF)/g它符合大多數條目(我不知道爲什麼,我很新的這一點),並像FF 2 0 FFFF 2 F FF串被排除在比賽中,再次不知道的。

輸入如:FF FF FF FF應從模式匹配中排除。

+1

你到目前爲止做了什麼,可以'a'和'b'包含符號或只是一些字符和數字 –

+0

在這裏downvote的任何見解?我是新來的正則表達式,我從來沒有使用它,並嘗試了幾個小時來解決它。但沒有運氣。 –

+0

請參閱http://stackoverflow.com/help/how-to-ask –

回答

1

假設a和b是十六進制字符(一個或多個),但不FF

FF((?!FF)[A-F0-9]{1,2}){2} FF 

基本上,在摺痕所需的字符的所允許的數量爲a和b,或者以一系列樣{1,2}(意1到2),或者只是一個加號+(意思是「一個或多個」)。

請參閱live demo

+0

是否適用於java?我已經用regexr.com測試過了,它符合要求,而我錯過了這裏的一個東西,中間的兩個字節是FF FF,那麼它應該被排除在模式匹配之外,我們可以實現嗎? –

+0

我有一個基於這個答案篩選模式的想法。感謝您的演示鏈接和解釋。 –

+1

@Rakibul我已經更新了正則表達式和鏈接,爲a和b排除了'FF'。 '(?!...)'是一種「負面預測」,它斷言緊隨其後的是*不符合它的模式。 – Bohemian

0

這可以做到 ^FF(?: [\\w\\d]+){2} FF$其中表達式檢查字符串的開始和結束與FF,並在兩個字之間包含字符或數字。