Регулярное выражение, совпадающее с основным маршрутом и фильтрами, но не совпадающее с под-маршрутами - PullRequest
0 голосов
/ 18 марта 2020

Я должен сделать регулярное выражение для C#, которое соответствует следующим выражениям:

/ videos /

/ videos? Filter = some% filter

/ videos

Но мне нужно, чтобы этот Regex не совпадал с такими выражениями, как:

/ videos / 1

/ videos / 67

На данный момент у меня есть следующий код, но я действительно не знаю, как завершить выражение, чтобы сопоставить эти слова с каждым словом, кроме чисел.

String currentUrl = Context.Request.Path.ToString() + Context.Request.QueryString.ToString();
String pageName = ViewContext.RouteData.Values["controller"].ToString();
Regex reg = new Regex(@"/(videos)(\/)?([^0-9])/g");

if (pageName == "Home")
{
    Html.RenderPartial("Partials/_LandingNavbarPartial");
}
else if (reg.IsMatch((currentUrl.ToLower())))
{
    Html.RenderPartial("Partials/_FilterNavbarPartial");
    @("Matches")
}
else
{
    Html.RenderPartial("Partials/_NavbarPartial");
    @("Not Matches")
}

Я интересует fini sh выражение моего выражения: /(videos)(\/)?([^0-9])/

1 Ответ

0 голосов
/ 21 марта 2020

После буквального изучения Regex с нуля, я нашел следующее выражение:

(videos)\/*[^\d]*

Работает, как я уже говорил, я хотел.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...