【问题标题】:Filter trash from Byte[]从 Byte[] 过滤垃圾
【发布时间】:2013-02-26 16:27:57
【问题描述】:

我想从我的 Byte[] 中过滤掉很多垃圾。但我不知道该怎么做。

当我将 Byte[] 转换为字符串时,输出如下:

[00][01][00][00][00]ÿÿÿÿ[01][00][00][00][00][00][00][00][0F][01][00][00][00][05][00][00][00][02][02]PÑ[0B][00][01][00][00][00]ÿÿÿÿ[01][00][00][00][00][00][00][00][0F][01][00][00][00][02][00][00][00][02][03][15][0B][00][01][00][00][00]ÿÿÿÿ[01][00][00][00][00][00][00][00][0F][01][00][00][00][02][00][00][00][02][02][0B][00][01][00][00][00]ÿÿÿÿ[01][00][00][00][00][00][00][00][0F][01][00][00][00][04][00][00][00][02]PÑ[03][0B][00][01][00][00][00]ÿÿÿÿ[01][00][00][00][00][00][00][00][0F][01][00][00][00][04][00][00][00][02][02]PÑ[0B][00][01][00][00][00]ÿÿÿÿ[01][00][00][00][00][00][00][00][0F][01][00][00][00][02][00][00][00][02][03][0B][00][01][00][00][00]ÿÿÿÿ[01][00][00][00][00][00][00][00][0F][01][00][00][00][06][00][00][00][02][02]PÑ[03][0B][00][01][00][00][00]ÿÿÿÿ[01][00][00][00][00][00][00][00][0F][01][00][00][00][01][00][00][00][02][0B][00][01][00][00][00]ÿÿÿÿ[01][00][00][00][00][00][00][00][0F][01][00][00][00][05][00][00][00][02][02]PÑ[03][0B][00][01][00][00][00]ÿÿÿÿ[01][00][00][00][00][00][00][00][0F][01][00][00][00][06][00][00][00][02][02]PÑ[03][0B][00][01][00][00][00]ÿÿÿÿ[01][00][00][00][00][00][00][00][0F][01][00][00][00][01][00][00][00][02][15][0B][00][01][00][00][00]ÿÿÿÿ[01][00][00][00][00][00][00][00][0F][01][00][00][00][02][00][00][00][02][02][0B][00][01][00][00][00]ÿÿÿÿ[01][00][00][00][00][00][00][00][0F][01][00][00][00]([00][00][00][02]PB000A07B;1359120102;NL1200000002 ;w4[03][0B][00][01][00][00][00]ÿÿÿÿ[01][00][00][00][00][00][00][00][0F][01][00][00][00][06][00][00][00][02][02]PB01[0B][00][01][00][00][00]ÿÿÿÿ[01][00][00][00][00][00][00][00][0F][01][00][00][00]$[00][00][00][02]4EC8F;1359300102;NL1200000001 ;Ey³[03][0B][00][01][00][00][00]ÿÿÿÿ[01][00][00][00][00][00][00][00][0F][01][00][00][00][08][00][00][00][02][02]PCD325[0B][00][01][00][00][00]ÿÿÿÿ[01][00][00][00][00][00][00][00][0F][01][00][00][00]"[00][00][00][02]973;1325301402;NL1200000004 ;AOl[03][0B][00][01][00][00][00]ÿÿÿÿ[01][00][00][00][00][00][00][00][0F][01][00][00][00][03][00][00][00][02][02]P[0B][00][01][00][00][00]ÿÿÿÿ[01][00][00][00][00][00][00][00][0F][01][00][00][00][03][00][00][00][02]Ñ[03][0B][00][01][00][00][00]ÿÿÿÿ[01][00][00][00][00][00][00][00][0F][01][00][00][00][03][00][00][00][02][02]P[0B][00][01][00][00][00]ÿÿÿÿ[01][00][00][00][00][00][00][00][0F][01][00][00][00][03][00][00][00][02]Ñ[03][0B]

那是你可以看到很多,我想过滤掉以下:[00][0F]ÿÿÿÿ[01]

我如何过滤这个字符串?如果可能的话,如何在不先转换为字符串的情况下直接过滤Byte[]?因为如果有办法直接从以下项目中过滤byte[],那将对我有很大帮助:[00][0F]ÿÿÿÿ[01]

提前致谢

【问题讨论】:

  • 你的 byte[] 包含什么?你想让你的字符串显示什么?
  • 过滤掉垃圾的最好方法是一开始就避免添加垃圾。如果您可以控制制作方,请考虑修复它,而不是修复接收器。
  • 我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。
  • byte[] 包含字节而不是字符,ÿ 可以是 1 个字节或更多字节,具体取决于字符编码。
  • 谢谢,将尝试访问填充字节数组的源,问题是它是我没有创建的代码,所以我需要请求许可才能更改代码的那一侧.

标签: c# regex visual-studio filter bytearray


【解决方案1】:

我该如何过滤这个字符串?

你可以使用这个正则表达式:

string filteredStr = Regex.Replace(strWithTrash, @"\[00\]|\[01\]|\[0F\]|(ÿÿÿÿ)", "");
// now, you can convert your filtered string back to a byte array

如果可能的话,如何在不先转换为字符串的情况下直接过滤 Byte[]?

为此,您可以使用循环,并查看[01F]ÿ 的字符代码,但它是一个很多 更容易将其转换为字符串并删除垃圾。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-17
    • 2010-09-21
    • 2012-02-28
    • 2012-01-15
    • 1970-01-01
    • 1970-01-01
    • 2019-03-10
    • 2019-09-19
    相关资源
    最近更新 更多