2015-02-08 97 views
0

我正在使用搜索並替換支持正則表達式的高級文本編輯器。用字符串+數字替換數字+字符串(使用正則表達式)

現在我想更換 ##,## -- ##,##(其中##,##代表任意數字)

任何幫助什麼搜索和替換我需要用來實現這個的表達式?

E.g. \ d-只會取代-本身。

+1

小心說哪個'高級文本編輯器'? – cristobalito 2015-02-08 20:59:19

+0

您可以在更換前後發佈一些線條示例嗎? (「任何數字」都非常模糊,我假設你*希望'1-'改爲'-1',並且*不希望'one-'改成'-one',但是有很多情況在那裏我不知道你是否希望他們改變。) – ruakh 2015-02-08 20:59:57

+0

@ruakh對不起,沒有提到我正在尋找一個柱子,所以我只處理數字。 (我的意思是說任何數字)壞英語 - 沒有母語的人;)在任何情況下,克里斯托波利托解決方案都做詭計 – TobiasH 2015-02-08 22:17:32

回答

1

不知道高級文本編輯器中的替換語義是什麼,但您可能希望使用分組來進行替換。像

(\d+)(,?)(\d+)- 

東西會匹配$ 1模式和假設的東西相匹配的組(括號之間的位),然後

-$1$2$3 

應該足夠了,其中$2匹配的(我猜可選) ''。

+2

儘管你的正則表達式將'','標記爲可選的,它至少需要一個數字在*和*之前至少有一位數字,即使沒有逗號,也需要至少兩位數字。我懷疑這是故意的。另外 - 不需要有三個獨立的捕捉組。用' - $ 1'代替'(\ d +,?\ d +) - '會產生同樣的效果。 – ruakh 2015-02-08 21:54:42

+0

工程就像一個魅力,美妙。 – TobiasH 2015-02-08 22:12:52

+0

偉大的觀點@ruakh - 完全同意 – cristobalito 2015-02-09 20:21:57