2016-01-29 28 views

回答

0
/(\/sale\/)[^\/]+\// 

替換\1$1

See it in action


如果你的語言支持lookbehinds,你可以:

/(?<=\/sale\/)[^\/]+\// 

替換爲空字符串。

See it in action

2

您可以使用錨$指定字符串的結尾,然後使用一個否定的字符類第一擷取組內獲得ID:

\/([^/]*)\/$ 

演示https://regex101.com/r/dO4hY6/1

而且如果要在sale之後匹配id,則可以使用以下正則表達式:

sale\/([^/]*)\/ 
+0

爲什麼大家都在使用'/'作爲分隔符?爲什麼不使用'〜' - 你的正則表達式會變得更加美麗:'〜/([^ /] *)/ $〜'或'〜sale /([^ /] *)/〜'。 – Jan

+0

@Jan其實我沒有使用任何分隔符,但我同意你'〜'很美。 :) – Kasramvd

0

另一種選擇是,如果所有的ID是完全一樣的格式(在這種情況下,10個數字,一個連字符,然後5個字母數字字符),你可以搜索模式直接使用這樣的事情(\d{10}-\w{5})