C # Regex экстрактор соответствия слов - PullRequest
0 голосов
/ 01 мая 2009

хорошо, у меня есть список доменов

например

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

я хочу регулярное выражение, которое даст мне все домены с указанным мною словом, например, собак или кошек

если я дам собакам, он должен вернуться

dogstoday.com
dogsnow.org
dogsabc.net

Может кто-нибудь сказать мне, как это сделать в C #?

Ответы [ 6 ]

4 голосов
/ 01 мая 2009

Если домены всегда начинаются со слова, которое вы предоставляете, как в вашем примере, вы можете просто использовать StartsWith, в противном случае вы можете просто использовать Contains. Для чего-то простого вам не нужны регулярные выражения.

2 голосов
/ 01 мая 2009

регулярное выражение

/ собаки / я

2 голосов
/ 01 мая 2009

Нужно ли это делать с помощью регулярного выражения? Почему бы просто не перебрать все домены и проверить, содержат ли они искомое слово?

String.Contains ()

1 голос
/ 02 мая 2009

Как и другие, я думаю grep было бы лучше, но что-то вроде ...

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

Вы должны быть осторожны с доменом, так как вы можете получить какой-нибудь сайт, например .au или .jp или что-то еще, но это будет что-то с собаками, за которыми следуют .com или .net или .org. Вы можете заменить «собак» на что угодно.

0 голосов
/ 01 мая 2009

похоже, что вам просто нужно использовать метод StartsWith .

0 голосов
/ 01 мая 2009
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);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...