Если вы хотите узнать, существует ли подстрока в строке, вы можете использовать Содержит .Если вы хотите узнать положение подстроки в строке, вы можете использовать IndexOf (который также можно использовать, чтобы увидеть, существует ли он ... см. Примеры ниже).
Примеры дляпроверка существования подстроки:
bool subStringExists = yourStringVariable.Contains("yourSubString");
bool subStringExists = yourStringVariable.IndexOf("yourSubString") >= 0;
Примеры поиска позиции подстроки:
int subStringPosition = yourStringVariable.IndexOf("yourSubString");
ОБНОВЛЕНИЕ:
На основе вашего комментария о сопоставлении URL вы можете сделатьвсе это с выражением регулярного выражения.С помощью регулярных выражений некоторые части выражения могут быть буквальными, тогда как другие части являются переменными.В случае того, что вы пытаетесь сделать, у вас будет что-то вроде этого для вашего регулярного выражения:
// Will match on http://www.mywebsite.com/abc#.aspx, where # is 1 or more digits
const string regExCommand = "(http://www.mywebsite.com/abc\\d+\\.aspx)";
Вот полный рабочий пример, который вы можете скопировать в консольный проект и поэкспериментировать с ним, чтобы выяснить,именно то, что вам нужно:
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
namespace RegExExample
{
public class Program
{
static void Main()
{
var urls = new List<Url>
{
new Url
{
Name = "Match 1",
Address = "http://www.mywebsite.com/abc123.aspx"
},
new Url
{
Name = "Match 2",
Address = "http://www.mywebsite.com/abc45.aspx"
},
new Url
{
Name = "Match 3",
Address = "http://www.mywebsite.com/abc5678.aspx"
},
new Url
{
Name = "No Match 1",
Address = "http://www.otherwebsite.com/abc123.aspx"
// No match because otherwebsite.com
},
new Url
{
Name = "No Match 2",
Address = "http://www.mywebsite.com/def123.aspx"
// No match because def
}
};
// Will match on http://www.mywebsite.com/abc#.aspx, where # is 1 or more digits
const string regExCommand = "(http://www.mywebsite.com/abc\\d+\\.aspx)";
var r = new Regex(regExCommand, RegexOptions.IgnoreCase | RegexOptions.Singleline);
urls.ForEach(u =>
{
var m = r.Match(u.Address);
if (m.Success)
{
Console.WriteLine(String.Format("Name: {0}{1}Address: {2}{1}",
u.Name,
Environment.NewLine,
u.Address));
}
});
Console.ReadLine();
}
}
internal class Url
{
public string Name { get; set; }
public string Address { get; set; }
}
}
Вывод будет следующим:
Имя: совпадение 1
Адрес: http://www.mywebsite.com/abc123.aspx
Имя: совпадение 2
Адрес: http://www.mywebsite.com/abc45.aspx
Имя: Матч 3
Адрес: http://www.mywebsite.com/abc.5678.aspx