2013-09-25 150 views
0

我的字符串有兩個可能的結尾。先用無編號:用gsub刪除字符串的結尾

http://www.something.com/test.html 

第二用數字(最多兩位數字)

http://www.something.com/test-1.html 
http://www.something.com/test-2.html 
http://www.something.com/test-3.html 
http://www.something.com/test-4.html 
http://www.something.com/test-15.html 

我需要從第二條帶從所述第一殼體的.html-1.html(或任何數目) 。這個想法是讓這兩個字符串可以找到重複。

我認爲有以下應該管理的第二種情況

gsub("-[0-9]|[1-9][0-9].html", "", string) 

,但有可能有管理這兩種情況下的功能?

+0

'GSUB( 「( - [0-9] *)* HTML」, 「」,字符串)'? – Hugh

回答

2

您或許可以使用這樣的事情:

(-[0-9]+)?\\.html 

需要注意的是它的安全逃生點,因爲一個轉義點會匹配任何字符。

regex101 demo

+0

準確地說'gsub(「( - [0-9] +)?。html」,「」,string)'。你不能用gsub逃脫點,否則會拋出錯誤。 – CptNemo

+0

@CptNemo哦?好吧,我不知道:)謝謝! – Jerry

+1

@CptNemo您是否嘗試用\\而不是僅僅\來轉義點? –