【问题标题】:Regex For Match a Hierarchical URL用于匹配分层 URL 的正则表达式
【发布时间】:2025-12-07 09:40:01
【问题描述】:

我有这个正则表达式

^([^\.]+)\.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

你可以看演示Here..!!

实际上我正在尝试进行 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>

我需要 RedirectRewrite

的正则表达式

【问题讨论】:

    标签: asp.net regex url web


    【解决方案1】:

    我会建议这个正则表达式:

    ^( *\.\.)?([^\.]+)\.aspx$
    

    rubular demo

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

    【讨论】:

    • 这是工作人员...但这是我的重写 url 正则表达式^([^/]+)/$。在这种情况下它不起作用
    • @VigneshKumar 嗯,你能澄清一下吗?你到底想做什么?
    • 其实我正在尝试做 URL 重写
    • @VigneshKumar 好的,我认为这与匹配上述网址不同,对吧?虽然我知道这是一个后续问题,但它可能更适合作为一个不同的问题。如果您不想写另一个,那仍然可以,但我需要更多说明。例如,您要重写到哪个 url?你用的是什么代码?
    • 我已经更新了我的问题。你能看看我的问题吗
    【解决方案2】:

    这是一个有效的示例:

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

    http://rubular.com/r/WqLtHxolkf

    【讨论】:

      【解决方案3】:

      你可以试试这个:

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

      表示..not .

      【讨论】:

      • @VigneshKumar 我在我的正则表达式中使用?: 删除了组捕获。如果你想你必须从正则表达式中删除它。
      【解决方案4】:

      试试这个正则表达式:

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

      说明

      演示

      http://rubular.com/r/UPoFog0Abj
      

      【讨论】:

        最近更新 更多