C#Regex字匹配提取器

时间:2009-05-01 18:36:28

标签: c# regex

好的我有一个域名列表

例如

dogstoday . com
catstoday . com
petstoday . com
dogsnow . org
dogsabc . net
catlitter . info

我想要一个正则表达式,它会给我所有包含我指定单词的域名,例如狗或猫

如果我给狗它应该返回

dogstoday.com
dogsnow.org
dogsabc.net

任何人都可以告诉我如何在c#中执行此操作吗?

6 个答案:

答案 0 :(得分:4)

如果域名始终以您提供的字词开头,则可以使用StartsWith,否则您只需使用Contains。对于简单的事情,你不需要正则表达式。

答案 1 :(得分:2)

这需要使用正则表达式吗?为什么不循环遍历所有域并检查它们是否包含您要查找的单词?

String.Contains()

答案 2 :(得分:2)

正则表达式

/狗/ I

答案 3 :(得分:1)

和其他人一样,我认为grep会更好,但有点像......

Regex.Match( yourBigString, @".*dogs*.*[.com|.net|.org]" );

你应该小心这个域,因为你可能会得到像.au或.jp这样的网站或其他任何网站,但这会得到任何狗,其中包括.com或.net或.org。您可以将“狗”替换为您正在寻找的任何东西。

答案 4 :(得分:0)

string line;
System.Text.RegularExpressions.Regex r = new System.Text.RegularExpressions.Regex("dogs", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
using (System.IO.StreamReader reader = System.IO.File.OpenText("domains.txt"))
{
    while ((line = reader.ReadLine()) != null)
    {
        if (r.IsMatch(line))
        {
            Console.WriteLine(domain);
        }
    }
}

答案 5 :(得分:0)

看起来你只需要使用StartsWith方法。