如何检查单词是否包含字符串中的字符?

时间:2012-05-11 12:18:35

标签: c# string word contains

我正在尝试创建一个程序,该程序使用域列表读取此文本文件,但它还有许多其他不必要的东西,例如标题,每个域的标题等。我想要的只是域名

现在,一个共同点是所有域都有一个“。”某处甚至两处。有没有办法检查该.txt文件中的单词是否有“。”,然后将其添加到另一个字符串?

我环顾四周,但我只找到了String Contains,而不是单词包含。

现在如果不存在,有没有办法将每个单词分成一个字符串数组,然后用for循环单独测试每个单词?

以下是一个例子:

Domain list name the first domain ip magicdomain.com name the second domain ip magicdomain2.com
etc.

5 个答案:

答案 0 :(得分:1)

考虑以下代码:

        var words = text.Split(" ");

        foreach (var word in words)
            if (word.Contains("lookup"))
                Console.WriteLine("found it");

答案 1 :(得分:1)

或者您可以使用正则表达式。谷歌为“域名正则表达式”,我发现this lib有用

相关SO:Using a C# regex to parse a domain name?

答案 2 :(得分:0)

string.IndexOf将返回传入的字符或字符串的索引(如果存在)或-1(如果不存在)。

if(word.IndexOf('.') > -1)
{
  // got a `.` do something with word
}

答案 3 :(得分:0)

获取字符串中的单词比检查每个单词中所需的字符

从字符串中获取单词

检查“正则表达式:如何从字符串中获取单词(C#)”Link

答案 4 :(得分:0)

您确定只有域部分会包含.

是否有任何分隔符用于在同一行上分隔其他信息。

如果没有看到一些示例数据,很难提出建议,但是如果你的域名总是第一件事就行了,后面跟着一个空格。您可以使用Substring&组合IndexOf只获得第一个令牌词。

line.Substring(0, line.IndexOf(' ')) 

或者,您可以使用string.Split()方法根据某个seperaor字符对该行进行标记。

你能发布一些样本数据吗?

相关问题