我正在创建一个将处理url的应用程序,此url将有多个段(此段的名称可以有特殊字符),此过程将使用超过1000000网址。从URL中删除字符,但使用正则表达式排除一个字
我不能用分开的方式替换每个段的特殊字符,因为这会使过程变慢。我们的想法是加入的URL的所有段{ - }或{0}和过程在一个单一的call.The完整的URL我将取代{ - }用/
{-}Lake Havasu City{-}Kingman-area{-}Lake Ha/vasu City{-}North Pointe-by-Read Homes{-}hola{*e}s!fsd3$^gdfg%
我有这样的规律表达尝试获得特殊字符,但排除特殊字
(?:(?<!")\{\-\}(?!"))|[^0-9a-zA-Z\s]
我得到的特殊字符与这部分[^ 0-9A-ZA-Z \ S],但我不能使表达式忽略{ - }
var url = @"{-}Lake Havasu City{-}Kingman-area{-}Lake Ha/vasu City{-}North Pointe-by-Read Homes{-}hola{*e}s!fsd3$^gdfg%";
var newUrl = RemoveSpecialCharacters(url).Replace("{-}","/")
public static string RemoveSpecialCharacters(string input)
{
Regex r = new Regex("(?:(?<!")\{0\}(?!"))|[^0-9a-zA-Z\s]", RegexOptions.IgnoreCase | RegexOptions.CultureInvariant | RegexOptions.Compiled);
return r.Replace(input, " ");
}
而结果必须是:
{-}Lake Havasu City{-}Kingman area{-}Lake Ha vasu City{-}North Pointe by Read Homes{-}hola e s fsd3 gdfg
感谢
谢谢你的问题,一个非常好的! – 2015-04-03 19:53:45