[英]Remove text from string until it reaches a certain character
我正試圖找出這個問題。 我需要“修復”一些鏈接,這是一個例子:
所以基本上我想刪除所有東西,直到它到達? 字符。 謝謝你的幫助。
string s = @"www.site.com/link/index.php?REMOVETHISHERE";
s = s.Remove( s.LastIndexOf('?') );
//Now s will be simply "www.site.com/link/index.php"
應該這樣做
盡管正確制作的字符串操作可行,但提取部分URI信息的更一般方法是使用System.Uri
類型,該類型具有封裝這些操作的方法,例如
var uri = new Uri("http://www.site.com/link/index.php?REMOVETHISHERE");
var part = uri.GetLeftPart(UriPartial.Path);
這將更清楚地傳達您的代碼的意圖,並且您將重新使用已知可用的當前實現。
如果字符串不表示有效的URI, System.Uri
構造函數將拋出異常,但無論如何,如果遇到無效的URI,您仍可能想要在程序中調用其他一些行為。 要檢測無效的URI,您可以捕獲異常或使用其中一個TryCreate()
重載。
使用string.split
。
string URL = "www.site.com/link/index.php?REMOVETHISHERE"
var parts = URL.Split('?');
parts[0]
將包含“www.site.com/link/index.php”, parts[1]
將包含“REMOVETHISHERE”。 然后,您可以使用您想要的任何部分。
在嘗試訪問數組的第二個元素之前,您應該添加檢查以確保有兩個部分。 你可以(例如)檢查字符串是否包含“?” 在嘗試調用Split
之前。
刪除最后一個“?” 以及之后的一切:
string input = @"www.site.com/link/index.php?REMOVETHISHERE";
input = input.Remove(input.LastIndexOf('?'));
OR
string input = @"www.site.com/link/index.php?REMOVETHISHERE";
input = input.Substring(0, input.LastIndexOf('?'));
現在輸出將是:
www.site.com/link/index.php
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.