C# 用特定符号替换特殊字符的正则表达式
我正在尝试使用正则表达式更改我的URL,如下所示:C# 用特定符号替换特殊字符的正则表达式,c#,asp.net,regex,asp.net-mvc,C#,Asp.net,Regex,Asp.net Mvc,我正在尝试使用正则表达式更改我的URL,如下所示: http://localhost:51577/Item/92MM+BLACK+CASE+FAN+W%2f+3+PIN+CONNECTOR+-+Cool+%26+Quiet/222069843383 进入如下所示的URL: http://localhost:51577/Item/92MM-BLACK-CASE-FAN-W-2f-3-PIN-CONNECTOR-Cool-26-Quiet/222069843383 任何%,+或+-+符号都将使用
http://localhost:51577/Item/92MM+BLACK+CASE+FAN+W%2f+3+PIN+CONNECTOR+-+Cool+%26+Quiet/222069843383
进入如下所示的URL:
http://localhost:51577/Item/92MM-BLACK-CASE-FAN-W-2f-3-PIN-CONNECTOR-Cool-26-Quiet/222069843383
任何%
,+
或+-+
符号都将使用正则表达式替换为-
符号。我认为正则表达式是最好的解决方案,但我不太熟悉编写正则表达式。。。有人能帮我解决这个问题吗
编辑:伙计们,我有一个更好的主意。。。我在控制器中有以下格式的标题名称:
92MM BLACK CASE FAN W/ 3 PIN CONNECTOR - Cool & Quiet
我如何编写正则表达式来替换字符串数组中的空格并删除任何额外的空格(如果有的话)
编辑2:基本上用-
符号替换任何特殊字符。。。有什么想法吗
尝试对导出的结果进行小的调整:
Regex.Replace(txt,[^0-9a-zA-Z:/]+,“-”)
;非常感谢。这就像一个魅力:)我认为正则表达式是最好的解决方案
你试过字符串。替换?你知道%2f
是/
而%26
是你原来标题中的&
,那么为什么要替换它们呢?您知道这两个URI有不同的含义,像/
和&
这样的字符是URL元字符吗?第一个示例URL编码“Title name”字符串,而第二个示例URL则不编码。这听起来像是一个错误;请解释为什么要更改URL。
Regex.Replace(YOUR_STRING, "[^0-9a-zA-Z]+", "-");