根据十六进制值从字符串中删除特定字符

Posted

技术标签:

【中文标题】根据十六进制值从字符串中删除特定字符【英文标题】:Remove specific character from a string based on hex value 【发布时间】:2011-05-26 05:00:20 【问题描述】:

从平面文件导入数据时,我注意到有些行嵌入了不间断空格(十六进制:A0)。

我想删除这些,但标准的 string.replace 似乎不起作用,并且曾考虑使用正则表达式替换字符串,但不知道正则表达式会搜索什么来删除它。

与其将整个字符串转换为十六进制并进行检查,还有更好的方法吗?

【问题讨论】:

替换应该可以解决这个问题,你能显示代码(失败的)吗? 【参考方案1】:

string.Replace 确实有效。不使用正则表达式:

stringVar = stringVar.Replace("\xA0", string.Empty);

【讨论】:

【参考方案2】:

这对你有用吗?

var myNewString = myCurrentString.Replace("\n", string.Empty );
myNewString = myNewString.Replace("\r", string.Empty );

\n”是 ASCII 换行,“\r”是回车。

【讨论】:

这些都不是不间断空格字符 A0 (160)。 是的,你是对的,我误解了这个问题。对不起。我应该删除我的答案还是把它留在这里(我是新手……)? 答案完全错误,这里没有什么可纠正的:-)其他人回答正确。【参考方案3】:
Regex.Replace(input, "\xA0", String.Empty);

应该这样做。

【讨论】:

【参考方案4】:

为什么 string.Replace 不起作用?

stringVar.Replace((char)0xA0, ' ');

【讨论】:

上面改成空白了吧?你如何完全删除它?我试过“”和'',但显然如果你在替换的左边有一个字符,你必须在右边有一个字符。 @NealWaters:你需要使用Replace的字符串版本,null作为第二个参数。

以上是关于根据十六进制值从字符串中删除特定字符的主要内容,如果未能解决你的问题,请参考以下文章

PHP 正则 空字符 / NUL字符

将文件中的字符串转换为十六进制(Ruby)第二部分

C# Json 将十六进制文字字符串转换为 int

如何根据另一列的值从 Spark DataFrame 中选择特定列?

二进制字符串到十六进制 c++

如何根据一个表中的特定值从3个表中删除行[重复]