2013-01-17 32 views
0

新手到正則表達式和創建的regexp尋求幫助尋求以下:正則表達式與位置匹配OR條件

數據項包括六個字符串作爲示出的示例在下面

1)「100100 「

2) 」110011「

3) 」010000「

4) 」110011「

5) 「111111」

6) 「000111」

需要使用正則表達式查找數據與在第4位的第1位或1說

  • 1:項目1,2,4,5和6應第二位置被匹配

  • 1:商品2,4-廣告5亦宜

  • 1第5和第6位:個2,4,5和6應該匹配

+2

你可以在匹配條件更加清楚一點,你已經寫了他們的樣子,我不知道這是條件OR或AND以及它們如何被嵌套。也許在單獨的一行中寫入每個匹配條件。 –

+0

我看不出爲什麼2和4與案例1不匹配 - 他們在第一個位置上有1個 - 你真的只是指第四個位置嗎? – MortenSickel

+0

邁克 - 所有條件都是OR條件;正如Morten所指出的那樣,我的問題出現了一個錯誤,這讓你感到困惑。謝謝。 –

回答

0

鑑於你的樣品,這些將工作:

  • 1在第4位的第1位或1:項目1,2,4,5和6應該匹配

1.....|...1...

  • 1第二位置:項目2,4廣告5亦宜

.1....

  • 1第5和第6位:個2,4,5和6應該匹配

....11

或者,如果你想匹配本規則的任何 ,將它們與|(或)運算符結合使用。

例子:

http://regexpal.com/?flags=g&regex=(1.....%7C...1...%7C.1....%7C....11)&input=100100%0A%0A110011%0A%0A010000%0A%0A110011%0A%0A111111%0A%0A000111

+0

太好了,這有效......學到了更多關於正則表達式。謝謝。 –

+0

很高興幫助:) – doctororange

0

如果它始終是隻有1和0的字符串,你應該把它們當作二進制數,並使用邏輯運算符來找到比賽。

+0

沒有選擇,因爲使用接受正則表達式來過濾數據的第三方軟件組件 –

+0

啊,我明白了,這太遺憾了 – MortenSickel

0

試試這個正則表達式

([1][0-1]{2}[1][0-1]{2})|([0-1][1][0-1]{4})|([0-1]{4}[1]{2}) 

找到解釋和演示這裏http://www.regex101.com/r/vD9jE7

+1

使用@doctororange的解決方案,雖然這也可以。感謝您的幫助。 –

0

下面是一個例子。必要時用零點更換點。 /^(11..|.1.1)11$/

^    # beginning of string 
(    # either 
    11..  # 11 and any 2 char 
    |   # or 
    .1.1  # any char, 1, any char, 1 
) 
11 
$    # end of string