正则表达式,以帮助重写URL

时间:2009-09-04 19:10:08

标签: c# regex

我有这样的字符串:

http://localhost:2055/web-site-2009/paginas/noticias/**IGP-M recua 0,36% em agosto, aponta FGV**-46.aspx

我想删除所有可能导致URL问题的字符(如?,|,&等)和字符串粗体部分的连字符( - )。重要的是我将连字符保持在46.aspx旁边。

那是什么样的正则表达式?

1 个答案:

答案 0 :(得分:10)

另一种方法就是URL Encode字符串。如果出于某些其他原因需要使用RegEx,我认为这会得到您要问的字符:

Regex.Replace(stringToCleanUp, "[^a-zA-Z0-9/;\-%:]", string.Empty);

正则表达式解释:

  • 不匹配此字符列表 - []表示列表,^表示否定
  • 字符列表:a-z(a和z小写字母之间的所有字符)
  • 字符列表:A-Z(a和z大写之间的所有字符)
  • 所有数字:0-9(所有数字)
  • 之后,我列出了允许的字符列表: /; - (必须用\来逃避它,因为 - 是一个保留字符)%:

您可以在最终列表中添加或删除 - 此列表中的任何内容都将包含在您的最终网址中,因为它不会被替换。

如果您需要调整此问题,我建议使用交互式RegEx工具,例如RegExr