我在我的字符串中获得了Unicode字符的十六进制表示形式,并希望用空字符串替换它.更具体地说,try 使用正则表达式匹配字符串中\u0000-\u007F中的所有值,将其替换为带有C#的空字符串.

Example 1:

InputString:"\u007FTestString"

ExspectedResult:测试字符串

Example 2:

InputString:"\u007FTestString\U0000"

ExspectedResult:测试字符串

我目前的解决方案可以

            if (!string.IsNullOrWhiteSpace(testString))
            {
                return Regex.Replace(testString, @"[^\u0000-\u007F]", string.Empty);
            }

与非ASCII字符的十六进制表示形式不匹配.如何使其与字符串中的\u0000-\u007F匹配?

如有任何帮助,我们不胜感激.谢谢!

推荐答案

您可以使用

var result = Regex.Replace(@"\u007FTestString\U0000", @"\\[uU]00[0-7][0-9A-Fa-f]", "");

要使所有不形成任何字符串转义序列的反斜杠都成为文字字符,则需要@"..."个逐字的字符串文字语法.

Pattern details:

  • \\-反斜杠
  • [uU]-uU
  • 00-两个零
  • [0-7]-从0到7的数字
  • [0-9A-Fa-f]-ASCII十六进制数字字符.

Csharp相关问答推荐

如何在asp.net C#中获取视频文件的视频时长?

C#编译器会优化表达体成员的重新判断吗?

我可以将Expressc操作设置为在另一个Expressc操作完成后自动发生吗?

无法使用并行库并行化我的代码

`Task`只有在C#中等待时才会运行吗?

在发布表单时绑定包含附加(嵌套)列表的对象列表的正确语法是什么

UWP中的任务和界面

MS Graph v5.42.0:在寻呼消息时更改页面大小

如何使用MoQ模拟Resources GroupCollection?

如何使用自定义负载均衡器管理Ocelot负载均衡器中的多线程和批读取

集合表达式没有目标类型

什么时候接受(等待)信号灯?尽可能的本地化?

如何防止Visual Studio断点以红色突出显示到整行?

在使用StringBuilder时,如何根据 colored颜色 设置为richTextBox中的特定行着色?

使用switch 类型模式时出现奇怪的编译器行为

Content WithTargetPath实际上是有效的MSBuild项吗?

我找不到ASP.NET Web应用程序(.NET框架).已 Select .NET框架项目和项模板以及此组件(&Q;)

如何解决System.StackOverflowException:抛出System.StackOverflowException类型的异常.&# 39;生成随机代码时发生异常?

C#定时器回调对象上下文?

我可以阻止类型上的Object.ToString()吗?