相关疑难解决方法(0)

byte []数组模式搜索

任何人都知道在byte []数组中搜索/匹配字节模式然后返回位置的有效方法.

例如

byte[] pattern = new byte[] {12,3,5,76,8,0,6,125};

byte[] toBeSearched = new byte[] {23,36,43,76,125,56,34,234,12,3,5,76,8,0,6,125,234,56,211,122,22,4,7,89,76,64,12,3,5,76,8,0,6,125}
Run Code Online (Sandbox Code Playgroud)

c# pattern-matching

68
推荐指数
9
解决办法
8万
查看次数

在C#中搜索字节数组中的最长模式

我需要编写有效且快速的方法来搜索给定模式的字节数组.我这样写,你怎么想,怎么改进?它有一个bug,它不能返回长度为1的匹配.

public static bool SearchByteByByte(byte[] bytes, byte[] pattern)
    {
        bool found = false;
        int matchedBytes = 0;
        for (int i = 0; i < bytes.Length; i++)
        {
            if (pattern[0] == bytes[i] && bytes.Length - i >= pattern.Length)
            {
                for (int j = 1; j < pattern.Length; j++)
                {
                    if (bytes[i + j] == pattern[j])
                    {
                        matchedBytes++;
                        if (matchedBytes == pattern.Length - 1)
                        {
                            return true;
                        }
                        continue;
                    }
                    else
                    {
                        matchedBytes = 0;
                        break;
                    }
                }
            }
        }
        return found; …
Run Code Online (Sandbox Code Playgroud)

c# arrays byte design-patterns match

5
推荐指数
1
解决办法
2977
查看次数

标签 统计

c# ×2

arrays ×1

byte ×1

design-patterns ×1

match ×1

pattern-matching ×1