使用正则表达式删除unicode十六进制值

时间:2014-04-06 14:46:27

标签: c# regex unicode hex

我需要从一串产品描述中删除几个不同的十六进制值。

示例:“Sale on CoolItem™ Watch”或“Deal buster on RMKHoody™ signed

™  ™

只是这个大型数据库中的几个十六进制字符串。

我需要一个reg exp来用空字符串替换每个。

结果:“Sale on CoolItem Watch”或“Deal buster on RMKHoody signed

什么是reg exp来找到半音并选择前进到&并替换整个选择?

更新/解决方案工作代码

string s = "Sale on CoolItem™ Watch"
var cleanProductName = Regex.Replace(s, @"&#x?[^;]{2,4};", string.Empty);
cleanProductName = "Sale on CoolItem Watch"


string s = "Deal buster on RMKHoody™ signed"
var cleanProductName = Regex.Replace(s, @"&#x?[^;]{2,4};", string.Empty);
cleanProductName = "Deal buster on RMKHoody signed"

您也可以使用

var cleanProductName = Regex.Replace(s, @"&[^;]{1,6};", string.Empty);

更多规格字符,例如®。 ™。 °

2 个答案:

答案 0 :(得分:1)

您可以尝试&#x?[^;]{2,4};,意思是:&#后跟零或一个x,后跟2到4个不是;的字符,然后是{{1} }。

答案 1 :(得分:0)

\\&\\#x?\\d+\\;可能是一个起点。