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

本文关键字:字符串 包含 字符 是否 单词 何检查 检查 | 更新日期: 2023-09-27 18:34:03

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

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

我环顾四周,但我只找到了字符串包含,而不是单词包含。

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

下面是一个示例:

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

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

请考虑以下代码:

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

或者你可以使用正则表达式。谷歌搜索"域名正则表达式",我发现这个库很有用

相关 SO:使用 C# 正则表达式解析域名?

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

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

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

从字符串中获取单词

检查"正则表达式:如何从字符串中获取单词(C#)"链接

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

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

如果不看到一些示例数据,很难提出一些建议,但是如果您是域,则始终是一行上的第一件事,然后是空格。 您可以使用Substring和IndexOf的组合来获取第一个标记单词。

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

或者,您可以使用 string.Split() 方法根据某些分隔字符标记该行。

你能发布一些示例数据吗?