C# Regex以排除特定的子字符串模式
我当前的正则表达式代码如下C# Regex以排除特定的子字符串模式,c#,regex,C#,Regex,我当前的正则表达式代码如下 var caption = Regex.Replace(fileImage.Caption, @"[^\w\s\(\)\.@-]", "",RegexOptions.None); 这里我用空字符替换特殊字符,不包括某些特殊字符 现在我遇到了一个奇怪的情况,在上面的匹配中,我需要导出一个×类型的子字符串其中215可以是任何数字。它可以是普通的十进制或十六进制。如果是十六进制数,则在&之后以“x”开头 我怎样才能做到这一点呢?你是说这个吗 var caption
var caption = Regex.Replace(fileImage.Caption, @"[^\w\s\(\)\.@-]", "",RegexOptions.None);
这里我用空字符替换特殊字符,不包括某些特殊字符现在我遇到了一个奇怪的情况,在上面的匹配中,我需要导出一个
×类型的子字符串代码>其中215
可以是任何数字。它可以是普通的十进制或十六进制。如果是十六进制数,则在&
之后以“x”开头
我怎样才能做到这一点呢?你是说这个吗
var caption = Regex.Replace(fileImage.Caption, @"(&#x?[a-f\d]+;)|[^\w\s\(\)\.@-]", "$1");
六位小数包括[a-f]
这更为稳健。我添加了一个'或',因为空格和十六进制的顺序可以是任意顺序:var caption=Regex.Replace(fileImage.caption,@“(?![xX]?[A-Fa-f\d]{1,3})[^\w\s()\.@-]”),它给出的是#215;而不是×;很抱歉,它仍然从×中删除;