【问题标题】:Regex to replace special characters with specific sign [closed]正则表达式用特定符号替换特殊字符[关闭]
【发布时间】:2016-08-27 21:34:33
【问题描述】:

我正在尝试使用正则表达式来更改我的网址:

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:基本上用- 符号替换任何特殊字符......有什么想法吗?

【问题讨论】:

  • I think regex is the best solution 你试过String.Replace 吗?
  • 确实意识到%2f是你原来的标题中的/%26&,那么你为什么要替换它们呢?
  • 您意识到这两个 URI 具有不同的含义,并且像 /& 这样的字符是 URL 元字符吗?您的第一个示例 URL 编码“标题名称”字符串,而您的第二个示例没有。这听起来像XY problem;请解释为什么要更改 URL。

标签: c# asp.net regex asp.net-mvc


【解决方案1】:

https://msdn.microsoft.com/en-us/library/e7f5w83z(v=vs.110).aspx

Regex.Replace(YOUR_STRING, "[^0-9a-zA-Z]+", "-");

试试看

【讨论】:

  • 对预期结果的小调整:Regex.Replace(txt, "[^0-9a-zA-Z:/]+", "-");
  • 谢谢!这就像一个魅力:)
猜你喜欢
  • 1970-01-01
  • 2014-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多