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文件夹中的链接上。
我现在有点不知所措,任何帮助都会很好。
这将吃掉"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自带标签之外的开放标签
祝你好运。