Регулярное выражение, чтобы найти строку и установить в качестве переменной - PullRequest
0 голосов
/ 02 февраля 2019

Я пытаюсь создать регулярное выражение, которое сообщит мне, если строка имеет {0#}, где ноль может быть повторен.Как только я подтверждаю, что строка имеет это, я пытаюсь установить ее в переменную, чтобы я мог посчитать число 0 и заменить # на другое число.У меня есть /([{0]})([#}])/g, который работает при обнаружении, но не при извлечении его в другую переменную.

Редактировать: Спасибо всем, ответ был

    Regex regex = new Regex(@"\{(0+)(#)\}");
    Match match = regex.Match(text);
    if (match.Success)
    {
        int zeros = Regex.Matches(match.Value, "0").Count;
    }

Ответы [ 2 ]

0 голосов
/ 02 февраля 2019

Ты супер близко.Проблема в том, что ваша группа захвата - ( ) должна быть как раз на нуле.Вам также не нужна другая группа захвата, если вы что-то не делаете с ней.Вы можете переписать свое регулярное выражение следующим образом:

{(0+)#}

{       - match '{'
 (0+)   - match and capture one or more '0'
     #  - match '#'
      } - match '}'
0 голосов
/ 02 февраля 2019

Используйте это:

\{(0+)(#)\}

символ {

, затем один или несколько символов 0

знак #

символ}

Демонстрационная версия

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