C# 正则表达式在捕获C时排除字符串的一部分#

C# 正则表达式在捕获C时排除字符串的一部分#,c#,regex,url-rewriting,C#,Regex,Url Rewriting,我正在尝试进行url重写,但无法捕获两种情况下的正确操作。第一种是,如果操作是“scheduletable”,则只在“action”中捕获“schedule”,否则捕获整个事件“pool”。我的正则表达式保持在“操作中包含“表” 使用: ^/events/(?您的?放错了地方。(?表)没有意义,您在操作上的*需要不贪婪(*?而不是*)。试试这个 ^/events/(?<action>.*?)(table)?/(?<eventid>\d*).*$ ^/events/(?*

我正在尝试进行url重写,但无法捕获两种情况下的正确操作。第一种是,如果操作是“
scheduletable
”,则只在“
action
”中捕获“
schedule
”,否则捕获整个事件“
pool
”。我的正则表达式保持在“
操作
中包含“

使用:


^/events/(?

您的
放错了地方。
(?表)
没有意义,您在
操作上的
*
需要不贪婪(
*?
而不是
*
)。试试这个

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

考虑以下正则表达式

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