通过搜索字符串获取子字符串文本来获取字符串的子字符串?
既然你已经知道子字符串了,我假设你正在检查字符串是否包含子字符串;你可以做
bool hasSubstring = str.Contains(subStr);
不,我已经知道如何检查它,我只是不确定如何获得它的位置 – Chris 2011-05-26 21:02:35
'str.IndexOf(subStr)'会给你第一次出现的位置。还有一个'LastIndexOf()' – 2011-05-26 23:15:14
如果你想知道,如果一个子串,你可以使用Contains字符串中存在。如果你想知道字符串中子字符串的位置,你可以使用IndexOf(它也可以用来查看它是否存在......见下面的例子)。
int subStringPosition = yourStringVariable.IndexOf("yourSubString");
UPDATE:
基于您对URL匹配的注释,你可以做
查找字符串的位置bool subStringExists = yourStringVariable.Contains("yourSubString");
bool subStringExists = yourStringVariable.IndexOf("yourSubString") >= 0;
例子:检查子的存在
例子这一切都与一个正则表达式。使用正则表达式,可以使表达式的某些部分是文字,而其他部分是可变的。在你试图做你有这样的事情对你的正则表达式是什么情况:
// 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
可以使用。载,但我真的不知道你问 – soandos 2011-05-26 02:09:15
你能给怎样的例子这应该工作?我只是不确定你想要做什么。 – 2011-05-26 02:11:23
你可以在你的问题的第二部分给出更多的解释吗? – 2011-05-26 02:39:03