Как посчитать количество совпадений, захваченных регулярным выражением в ASP.Net MVC? - PullRequest
0 голосов
/ 02 июля 2019

У меня проблема с подсчетом количества совпадений, захваченных регулярным выражением, потому что у него нет функции подсчета.

Вот мой код:

 var pathRegex = new Regex(".+?\\:\\/\\/.+? (\\/.+?)(?:#|\\?|$)");
 var result = pathRegex.Match(url);
            if (!(result.Success))
            {
                pathRegex = new Regex("/\\/.*/");
                result = pathRegex.Match(url);

                if (result.Success && result.Length == 1)
                {
                    return result.Value;
                }else
                {
                    return "";
                } 
            }

I 'мы пробовали result.Length, но он учитывает только длину строки, которая соответствует.Есть ли у вас какие-либо предложения или обходные пути?

Ответы [ 2 ]

1 голос
/ 02 июля 2019

Regex.Match возвращает только первое вхождение как один объект Match. Ref .Следовательно, он Count недоступен, а if (result.Success) достаточно для вашего случая.

Если вы хотите несколько совпадений, вам нужно Regex.Matches, которое возвращает MatchCollection.

1 голос
/ 02 июля 2019
MatchCollection matches = pathRegex.Matches(url);
var count = matches.Count;

Класс Regex

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