【问题标题】:Regex Exclude Part Of String On Capture C#正则表达式在捕获 C# 时排除部分字符串
【发布时间】:2013-11-22 04:39:02
【问题描述】:

我正在尝试重写 url,但无法为两种情况捕获正确的操作。第一个是如果动作是“scheduletable”,只捕获“action”中的“schedule”,否则捕获整个“pools”。我的正则表达式不断在“action”中包含“table

^/events/(?<action>.*)(?table)?/(?<eventid>\d*).*$

原始网址

/events/scheduletable/39?layout=time&type=all
/events/pools/39

【问题讨论】:

    标签: c# regex url-rewriting


    【解决方案1】:

    用途:

    ^/events/(?<action>.*?)(?:table)?/(?<eventid>\d*).*$
    

    并在替换中使用 $1$2 - 甚至是您的组名。

    Working on RegExr

    【讨论】:

      【解决方案2】:

      您在错误的位置输入了 ?(?table) 没有意义,你在action 上的* 需要是非贪婪的(.*? 而不是.*)。试试这个;

      ^/events/(?<action>.*?)(table)?/(?<eventid>\d*).*$
      

      【讨论】:

        【解决方案3】:

        考虑以下正则表达式...

        (?<=events/).*?(?=(table|/))
        

        祝你好运!

        【讨论】:

          猜你喜欢
          • 2015-10-06
          • 2012-08-20
          • 2019-10-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-04-13
          • 1970-01-01
          相关资源
          最近更新 更多