asp.net c# Regex url parsing

本文关键字:url parsing Regex net asp | 更新日期: 2023-09-27 18:00:06

但我需要编写一个函数,该函数接收字符串,在超链接中查找URL,然后交换URL,这样页面名称现在就可以用作锚,例如

<a href="mysection/mysector/apage.aspx">

将成为

<a href="mysection/mysector.aspx#apage">

但这种情况只会发生在mysector文件夹中的链接上。

我现在有点不知所措,任何帮助都会很好。

asp.net c# Regex url parsing

这将吃掉"folder/"的所有序列,并捕获最后一个序列。它会附加一个".aspx"answers"#"以及不带扩展名的文件名。如果文件夹和文件名不仅可以包含字母数字字符,则字符类可能需要进一步调整。

href="(([a-z0-9]+/)*)([a-z0-9]+)/([^.]+)'.aspx"

然后用替换

href="$1$3.aspx#$4"

也可以尝试"mysection/aothersection/yetanotherone/mysector/apage.aspx"来了解它是如何工作的。

我建议使用IIS URLRewrite模块在后端修复它。那么你就不需要任何代码了。

如果你真的想在c#中做到这一点:

public string FixLinks(string strHTML)
{
    try
    {
        return Regex.Replace(strHTML, "(href='''".*/mysector)/(.*)", "$1.aspx#$2");
    }
    catch (Exception e)
    {
        return strHTML;
    }
}

没有特殊顺序:

这将在测试正则表达式时对您有所帮助:http://derekslager.com/blog/posts/2007/09/a-better-dotnet-regular-expression-tester.ashx

看看Matches集合,字符串的各个部分将保存在这里。

例如:http://forums.asp.net/t/1408417.aspx/1

警告:RegEx匹配除XHTML自带标签之外的开放标签

祝你好运。