我正在尝试重写网址但无法捕获两个方案的正确操作。第一种是如果操作是“scheduletable
”,则只捕获“schedule
”中的“action
”,否则捕获整个“pools
”。我的正则表达式会在“table
”
action
”
^/events/(?<action>.*)(?table)?/(?<eventid>\d*).*$
原始网址
/events/scheduletable/39?layout=time&type=all
/events/pools/39
答案 0 :(得分:2)
使用:
^/events/(?<action>.*?)(?:table)?/(?<eventid>\d*).*$
在替换中使用$1
和$2
- 或者甚至是您的群组名称。
答案 1 :(得分:0)
你错了地方?
。 (?table)
没有意义,而*
action
上的.*?
需要非贪婪(.*
而不是^/events/(?<action>.*?)(table)?/(?<eventid>\d*).*$
)。试试这个;
{{1}}
答案 2 :(得分:0)
考虑以下Regex ......
(?<=events/).*?(?=(table|/))
祝你好运!