繁体   English   中英

C#正则表达式单词匹配提取器

[英]C# Regex word match extractor

好的,我有一个域名列表

例如

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

我想要一个正则表达式,可以给我所有带有我指定的单词的域,例如狗或猫

如果我给狗它应该返回

dogstoday.com
dogsnow.org
dogsabc.net

谁能告诉我如何在c#中执行此操作?

如果域始终以示例中提供的单词开头,则可以使用StartsWith否则可以使用Contains 对于这样简单的事情,您不需要正则表达式。

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

String.Contains()

正则表达式是

/狗/我

和其他人一样,我认为grep会更好,但是类似...

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

您应该小心域,因为您可能会获得.au或.jp等网站,但这将使带有狗的任何内容都跟随其中,后跟.com或.net或.org。 您可以将“ dogs”替换为所需的任何东西。

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);
        }
    }
}

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM