2017-04-04 79 views
1

我有幾百萬類似下面的行後:刪除一切有10位數字的正則表達式

0032  0001  0020413300    0001   BLUE OVERCOAT    CC     P 

我設法通過使用之前刪除的文字:

.*(?=\d{10}) 

後刪除一切我想這一點:

\d{10}.* 

但它選擇號碼&之後的一切。我該如何離開號碼並選擇一切?

回答

1

使用捕獲組:

(\d{10}).* 

$1取代。見the regex demo

還要考慮使用單詞邊界匹配10位數字作爲一個整體詞:

\b(\d{10})\b.* 

another regex demo

如果您使用的是Notepad ++,則可以使用\K將匹配的文本放在其位置:\b\d{10}\b\K.*並替換爲空字符串。或者向後看:(?<=\b\d{10}\b).*

參見yet another demo

+0

*仍然*選擇數字,我需要保持數字。編輯:K. *作品,謝謝。 – Rosenberg

+0

所有的解決方案將保持數量。演示添加到答案。 –

+0

你可以用。*(\ d {10})。*來匹配所有(在組之前和之後),並以$ 1替換。 – mquantin