我试图弄清楚在字符串中的/字符之前获取所有内容的最佳方法。下面是一些示例字符串。
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想要在我的列表框中单独使用,而不需要其余的URL
答案 0 :(得分: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