2017-09-04 45 views
0

我想弄清楚最好的方式之前获取/字符在字符串中的所有内容。以下是一些示例字符串。得到一切后斜杠c#

var url = dr.FindElements(By.XPath("//*[@id=\"u_0_3\"]/div/h1/a")); 
      foreach (var item in url) 
      { 
       if (item.GetAttribute("href").ToString().Contains("https://www.facebook.com/")) 
       { 
        listBox4.Items.Add("here"); 
       } 
      } 

的href是这样=“http://facebook.com/xxx” 希望xxx,它是用户名想要得到它独自在我的列表框中没有网址的

+0

'项目= I替换(@“http://facebook.com/”,string.Empty);'? – oerkelens

+1

不要使用字符串,创建一个'Uri'实例并在那里使用方法/属性。 – Lee

+0

简单而脏的方式是'string [] strArray = strString.Split('/'); strWantedString = strArray [strArray.Count];' – Gopi

回答

0

的其余部分如果你的地步,你已经得到你要使用的字符串,这里有两种方法可以做到这一点:

分割字符串由/,并采取最后一部分

var stringToProcess = "https://www.facebook.com/ProfileName"; 
var partsOfString = stringToProcess.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries); 
var profileName = partsOfString.Last(); 

使用Uri类提取的最后部分

var stringToProcess = "https://www.facebook.com/ProfileName"; 
var stringToProcessAsUri = new Uri(stringToProcess); 
var profileNameFromUri = stringToProcessAsUri.Segments.Last(); 

这是“严格把好”的方式,因为它会给你一个干净的结果,即使配置文件地址查询字符串连接到它,即:

var stringToProcess = "https://www.facebook.com/ProfileName?abc=def"; 
var stringToProcessAsUri = new Uri(stringToProcess); 
var profileNameFromUri = stringToProcessAsUri.Segments.Last(); 

你仍然有变量profileNameFromUri返回一个包含只ProfileName