删除不可打印的字符串

时间:2016-02-25 06:25:46

标签: c# string str-replace non-printing-characters

我在pdf图像上完成了OCR并提取了文本。 OCR由于某种原因将单个空间转换为双回车换行。

例如

"\r\n\r\n"

以下不起作用,因为我认为我的4个字符不是真正的混乱而是4个不可打印的字符。

DocumentData = DocumentData.Replace(@"\r\n\r\n", "");

我只想将这4个不可打印的字符替换为一起出现的空格。

如何在没有太多大惊小怪的情况下实现这一目标。

3 个答案:

答案 0 :(得分:4)

问题在于使用" @"。通过使用它预先处理文本,将忽略转义。只需使用 -

DocumentData = DocumentData.Replace("\r\n\r\n", " ");

答案 1 :(得分:2)

这是你想要的吗?

DocumentData = DocumentData.Replace("\r\n\r\n", " "); // <-- change "" to " ", remove @ char

答案 2 :(得分:0)

如果您想确保您(或发件人)正在运行的系统并不重要,并且您将始终捕获不可打印的我将使用Regular Expressions

DocumentData = Regex.Replace(DocumentData, @"\r\n?|\n|\r|\s+", " ");

编辑:使表达更加健壮,并检查额外的空格,用一个替换它们,这样可以避免在替换后过多的间距,因此它特定于此问题。我的错。