2012-03-01 30 views
0

就像標題說,我想創建一些正則表達式,除了方括號內的數字之外,選擇任何東西。例如:選擇一切,但方括號內的數字,並取代

6483463456[1234]623235[456]783467546[789]67467467

我想取代一切,但數字的方括號裏面什麼都沒有(只留下數字在括號內)。我想這一點:

[1234][456][789]

這裏是我到目前爲止,但它不工作:

[^\[.*\]]

上面的代碼分別找到了號碼,包括裏面的數字括號。

\[(.*?)\]

上面的代碼什麼也不做,但看起來正確的。

我關閉了嗎?

回答

3

你會想要拿起方括號周圍的數字,然後只捕獲方括號(連同括號)之間的數字,以擺脫其餘的。

此外,要僅匹配數字,您應該使用\d而不是.

查找:

\d*(\[\d*?\])\d* 

更換所有有:

\1 
+0

第一個幾乎適合我。 問題是,它設置了這樣的: 6483463456 [1234] 623235 [456] 783467546 [789] 67467467 ,我想保留在方括號 – user1242345 2012-03-01 10:13:56

+0

你想要什麼,結果在裏面的一切?你想要'1234456789'還是'[1234] [456] [789]'? – BoltClock 2012-03-01 10:14:25

+0

[1234] [456] [789]請 – user1242345 2012-03-01 10:17:53

0

前提是字符串的形式永遠不會改變:

  • 沒有空間的任何地方
  • 所有字符都是數字

然後你可以使用:

(\d*)\[(\d*)\](\d*) 

這將捕獲所有三組,所以你可以替換爲第二組在整場比賽(括號內的數字)。

+0

此代碼似乎捕捉到它是這樣的: [1234] 53636454534673 [5678] 它是突出來代替: [1234] 53636454534673 – user1242345 2012-03-01 10:26:09

+0

上,使用這將意味着,1組將沒有比賽,組兩個將具有'1234'和'5678',而'53636454534673'將在組3中被捕獲。 – 2012-03-01 10:37:26

相關問題