c# - 在 C# 中选择具有重复字符的字符串

标签 c# regex string linq

如何在 C# 中使用 linq 查询来查找同时包含“B”和“BZ”的字符串?要查找只有“B”的字符串,我使用:

var query = from c in mapping
             where c.code.Contains("B") 
             select c;'

但是如果我说 where c.code.Contains("B") && where c.code.Contains("BZ")显然我只得到了有 BZ 的字符串,因为第一个约束将在第二个约束中得到满足。但我需要的是获得同时具有“B”和“BZ”的字符串。 (其实我的话应该有两个B)。

最佳答案

我建议使用正则表达式,例如:

    where Regex.Match(c, ".*(B.*BZ)|(BZ.*B).*").Success

示例:

    static void Main()
    {
        var mapping = new[]
        {
            "BBZ",
            "B",
            "ABBA",
            "BZBZ",
            "BZAB",
            "BBZ",
            "ZBBAZ"
        };

        // the code
        var query = from c in mapping
                    where Regex.Match(c, ".*(B.*BZ)|(BZ.*B).*").Success
                    select c;

        Console.WriteLine("Matched:");
        foreach (string s in query)
        {
            Console.WriteLine(s);
        }
    }

输出:

Matched:
BBZ
BZBZ
BZAB
BBZ

关于c# - 在 C# 中选择具有重复字符的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28289073/

相关文章:

c# - 我能保证非引用方法不会改变数组大小 C#

c# - 欧元货币字符不显示

c# - ServiceStack 是如何处理并发调用的?

python - 检查字符串是否以 Python 中的驱动器号开头

java - 将文件名分成组

javascript - 查找某个字符串是否在 json 文件中,然后获取它周围的内容

c# - 将 MIDI 字节数组转换为 MP3 字节数组

java - 为什么Java中String被设计成Class/Object,占用资源较多

c - 在 C 中没有匹配项时在字符串中插入一个字符

javascript - node.js 替换正则表达式特殊字符