2012-10-29 123 views
0

我得到的字符串裏面去:正則表達式匹配字符串重複蟒蛇

abc123abc123abc123

ABC123

abc123abc123abc123abc123abc123abc123

等(不同單位ABC123的,我不知道長重複)

任務是提取第一個1和第一個a,最後一個c和最後3個。是否可以用1個正則表達式來執行,以及如果有可能?我一直計數重複單位,並根據計數,我已經能夠用幾個正則表達式執行任務,但如果可能的話,想要使用一個正則表達式。謝謝

編輯: 在真實的情況。它更像是:(數字)BC:(數字)1 :(數字)23:(數字)等,我必須捕捉第一個數字,第一個數字,最後一個數字和最後3個號碼。

傑夫

+0

我不太明白。你想找到自己的位置?因爲如果你「提取」它們,第一個「a」與其他任何一個有什麼不同? –

+2

在你的例子中,第一個a總是在開始處,第一個a總是第四個charachter,最後一個c始終是第四個,最後一個c是最後一個字符。那麼爲什麼你需要一個正則表達式而不是x [0],x [3],x [-4]和x [-1]? – Sebastian

+1

是的,請澄清你的問題一點(預期輸入 - >輸出和字符串預計*不匹配(如果有)..) – redShadow

回答

3

這是使用兩個regexen最容易完成的。 "^(a)bc(1)23" and "ab(c)12(3)$"。合併這兩個可能是可能的,但是正則表達式會變得很難理解。

+1

我沒有看到這個目的?如果OP知道他的字符串是'abc123'的重複,那麼你的正則表達式總是返回'a','1','c'和'3'。 –

+0

我在OP編輯後模擬了答案。我的例子並不打算成爲文字代碼,而是爲了匹配OP的問題。 –

+0

啊對,我沒有看到編輯 –