Asp.net 用于匹配分层URL的正则表达式

Asp.net 用于匹配分层URL的正则表达式,asp.net,regex,url,web,Asp.net,Regex,Url,Web,我有这个正则表达式 ^([^\.]+)\.aspx$ 其中只匹配以下内容 FolPage.aspx ~/FolPage.aspx ~/Folder/FolPage.aspx ~/Folder/Folder1/Folder2/FolPage.aspx ~/Folder/Folder1/Folder2/Folder3/Folder4/FolPage.aspx 我想要一个正则表达式,它匹配上面的url和下面的url ../FolPage.aspx ../Folder/FolPage.aspx ..

我有这个正则表达式

^([^\.]+)\.aspx$
其中只匹配以下内容

FolPage.aspx
~/FolPage.aspx
~/Folder/FolPage.aspx
~/Folder/Folder1/Folder2/FolPage.aspx
~/Folder/Folder1/Folder2/Folder3/Folder4/FolPage.aspx
我想要一个正则表达式,它匹配上面的url和下面的url

../FolPage.aspx
../Folder/FolPage.aspx
../Folder/Folder1/Folder2/FolPage.aspx
../Folder/Folder1/Folder2/Folder3/Folder4/FolPage.aspx
您可以看到演示

事实上,我正在尝试重新编写URL

<rewrite>
  <rules>
    <rule name="Redirect" stopProcessing="true">
      <match url="^([^\.]+)\.aspx$" />
      <conditions>
        <add input="{REQUEST_METHOD}" negate="true" pattern="^POST$" />
      </conditions>
      <action type="Redirect" url="{ToLower:{R:1}}/" appendQueryString="false" redirectType="Permanent" />
    </rule>
    <rule name="Rewrite" stopProcessing="true">
      <match url="^([^/]+)/$" />
      <conditions>
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
      </conditions>
      <action type="Rewrite" url="{R:1}.aspx" />
    </rule>
  </rules>
</rewrite>

我需要用于重定向和重写的正则表达式。你可以试试这个:

^(?:\.\.|[^\.])+\.aspx$

它的意思是
不是。

我建议使用以下正则表达式:

^( *\.\.)?([^\.]+)\.aspx$
^(\.{2}|~)?.+\.aspx$


(*\。\)?
匹配可选空格,后跟双点。

以下是一个有效的示例:

/^([~\.]{1,2})([^\.]+)\.aspx$/

试试这个正则表达式:

^( *\.\.)?([^\.]+)\.aspx$
^(\.{2}|~)?.+\.aspx$
描述

演示
是工人。。。但这是我的重写url regex
^([^/]+)/$
。在这种情况下,它不是working@VigneshKumar嗯,你能澄清一下吗?你到底想做什么?实际上我想做Rewriting@VigneshKumar好的,我认为这是一个不同于匹配上述URL的方法,对吗?虽然我知道这是一个后续问题,但作为一个不同的问题可能更合适。如果你不想再写一篇,那也没关系,但我需要更多的澄清。例如,您试图重写到哪个url?你在用什么代码?我已经更新了我的问题。你能看看我的表吗question@VigneshKumar我在正则表达式中使用
?:
删除了组捕获。如果你想,你必须从正则表达式中删除它。