我需要從這裏刪除:http://example.com/media/catalog/product/cache/1/thumbnail/56x/9df78eab33525d08d6e5fb8d27136e95/i/m/images_3.jpg產品/和/我之間的一切,並保持http://example.com/media/catalog/product/i/m/images_3.jpg使用正則表達式,或c#。這些是搜尋器應用程序中的選項。 請幫忙。正則表達式刪除動態字符串,並保留其餘
回答
var input = "http://example.com/media/catalog/product/cache/1/thumbnail/56x/9df78eab33525d08d6e5fb8d27136e95/i/m/images_3.jpg";
var re = new Regex("^(.+/product)/.+(/i/.+)$");
var m = re.Match(input);
if (!m.Success) throw new Exception("does not match");
var result = m.Groups[1].Value + m.Groups[2].Value;
//result = "http://example.com/media/catalog/product/i/m/images_3.jpg"
我也會在幾分鐘內檢查你的。 – geryjuhasz
這也工作得很好。謝謝。 – geryjuhasz
此外,它是唯一的答案,它回答你的問題的方式(使用正則表達式,並獲得字符串「/我」)沒有假設一定的長度(這是沒有在你的問題中指定) – JoelFan
string str = "http://example.com/media/catalog/product/cache/1/thumbnail/56x/9df78eab33525d08d6e5fb8d27136e95/i/m/images_3.jpg";
int prodIndex = str.IndexOf("/product/");
int iIndex = str.IndexOf("/i/");
string newStr = str.Substring(0, prodIndex + "/product/".Length)
+ str.Substring(iIndex + 1);
下面是使用正則表達式更通用的例子,那只是看起來不是假定這將是/i/
爲32個字符的散列後的部分,:
string str = "http://example.com/media/catalog/product/cache/1/thumbnail/56x/9df78eab33525d08d6e5fb8d27136e95/i/m/images_3.jpg";
var match = Regex.Match(str, @"(.*/product/).*/.{32}/(.*)");
var newStr = match.Groups[1].Value + match.Groups[2].Value;
我認爲第一個將是更通用的,因爲我不知道如果哈希將始終包含該字符的nr。我會試試你的方法。謝謝 – geryjuhasz
完美,謝謝! – geryjuhasz
-1因爲在第二個代碼部分中,您正在對特定長度進行硬編碼,而不是像指定的問題那樣查找字符「/ i」。第一個代碼段沒有硬編碼的長度,但沒有使用正則表達式中指定的正則表達式 – JoelFan
- 1. 正則表達式保留所需的字符串剩餘和其他刪除
- 2. 正則表達式保留字符串
- 3. 正則表達式刪除特殊字符並保留重音和()@ -_'&&字符
- 4. 用正則表達式python動態刪除字符串
- 5. 正則表達式 - 保留/刪除相同的字符
- 6. 正則表達式將字符串除以+ * - /並保留分隔符?
- 7. .NET正則表達式保留字符
- 8. PHP正則表達式 - 刪除多餘的空格,但保留換行符
- 9. 從字符串正則表達式刪除字符串
- 10. 正則表達式從字符串中刪除字符串
- 11. Java字符串分割正則表達式保留定界符
- 12. 正則表達式刪除連字符
- 13. RegEx保留前3個字符並刪除其餘
- 14. 正則表達式確保字符串
- 15. 刪除字符的字符串中的JavaScript正則表達式
- 16. 使用正則表達式從字符串中刪除字符
- 17. 正則表達式從字符串中刪除字符
- 18. 正則表達式除字符串
- 19. 正則表達式排除字符串
- 20. 正則表達式排除字符串
- 21. 正則表達式字符串排除
- 22. 正則表達式分割字符串保留引號
- 23. 尋找正則表達式保留一些字符串
- 24. 如何使用正則表達式刪除字符串中的多餘空格
- 25. JavaScript的正則表達式來移除特殊字符,並刪除多餘的空格,同時留下逗號
- 26. 正則表達式刪除分隔符之間的字符串
- 27. 正則表達式從字符串中刪除換行符
- 28. 刪除格式字符串的正則表達式
- 29. 使用正則表達式刪除數字字符串
- 30. 正則表達式:保留HTML標記,只刪除html特殊字符
請問'I /米/'是恆定的?它可以改變嗎?你到目前爲止是否嘗試過任何代碼?如果是,請張貼代碼。 – unlimit
是的,它會一直像我/我 – geryjuhasz