2012-02-07 92 views
1

我的字符串是這樣 sfdfdsfdsf start112matlab2336end gfdgdfgkknfkg start558899end dfdsfd正則表達式來代替最短匹配

我們如何替換字符串的一部分,這樣的結果將是

sfdfdsfdsfgfdgdfgkknfkgdfdsfd

即粗體內容需要刪除。

+0

你試過什麼? – jimy 2012-02-07 10:08:18

+0

雅我試過「開始*結束」,但它匹配的第一個開始和最後結束 – 2012-02-07 10:09:19

回答

19

您需要使用non-greedy匹配:

start.*?end 
+0

非常感謝它正在工作 – 2012-02-07 10:11:31

5

使用這個正則表達式/start.+?end/g的替換函數,它將匹配字符串的粗體部分。正則表達式的g部分意味着全局,可能需要根據您使用的語言以不同的方式實現。

這裏的關鍵是使用?,它打開了非貪婪的匹配。這意味着比賽消耗字符,而不是最大的最低金額,因此將匹配來自start下一個而不是最後end

+0

非常感謝它正在工作 – 2012-02-07 10:11:00

0
start[1-9]+end 

如果你需要在單詞之間有數字

+0

它似乎並非如此。 – toniedzwiedz 2012-08-23 05:40:51