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

Edu*_*llo 0 c# regex

我有这样的字符串:

http://localhost:2055/web-site-2009/paginas/noticias/**IGP-M recua 0,36% em agosto, aponta FGV**-46.aspx
Run Code Online (Sandbox Code Playgroud)

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

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

Jon*_*way 10

另一种方法就是URL编码字符串.如果由于其他原因需要使用RegEx,我认为这会得到你问的字符:

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

正则表达式解释:

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

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

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