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

C# 正则表达式字匹配提取器,c#,regex,C#,Regex,好的,我有一个域名列表 比如说 dogstoday . com catstoday . com petstoday . com dogsnow . org dogsabc . net catlitter . info 我想要一个正则表达式,它将为我提供所有包含我指定的单词的域,例如狗或猫 如果我给狗,它会回来的 dogstoday.com dogsnow.org dogsabc.net 有谁能告诉我如何在c中实现这一点吗?这需要用正则表达式实现吗?为什么不在所有域上循环并检查它们是否包含您要

好的,我有一个域名列表

比如说

dogstoday . com
catstoday . com
petstoday . com
dogsnow . org
dogsabc . net
catlitter . info
我想要一个正则表达式,它将为我提供所有包含我指定的单词的域,例如狗或猫

如果我给狗,它会回来的

dogstoday.com
dogsnow.org
dogsabc.net

有谁能告诉我如何在c中实现这一点吗?

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

正则表达式是


/dogs/i

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

如果域总是以您在示例中提供的单词开头,您可以使用StartsWith,否则只需使用Contains即可。对于这样简单的东西,您不需要正则表达式

像其他人一样,我认为会更好,但像

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

你应该小心这个域名,因为你可能会得到一些像.au或.jp之类的网站,但这会得到任何有狗的网站,然后是.com或.net或.org。你可以用你想要的任何东西来代替狗。

我可以让你对grep感兴趣吗?我从来都不知道jwz反对正则表达式的理由,但现在我想我可以看到他那句名言的适用范围了。我喜欢正则表达式,我只是不认为每个任务都需要它们。一个文本文件中有70000个域,我必须只删除与我指定的词匹配的域。如果你担心的话,正则表达式也必须搜索所有70000个域。你不知道吗?正则表达式很复杂,所以它们更好!单词也可以介于两者之间。域是一个包含70000行域的巨大文本文件
Regex.Match( yourBigString, @".*dogs*.*[.com|.net|.org]" );