На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Qraizer, Hsilgos
  
> Регулярные выражения , как с помощью регулярных выражений получить не самую большую,а самую малую подстроку?
    Доброго времени суток!
    Вопрос по регулярным выражениям. Как можно получить не максимальную возможную подпоследовательность,подходящую под маску,а минимальную?
    Например: из строки "AbbbcccAAbbbcccA" с помощью вот такого регулярного выражения Regex^ reg = gcnew Regex("A.*A"); мы получим всю строку,а хотелось бы получить "AbbbcccA" и отдельно "AbbbcccA".
      читай про жадные и не жадные regexp-ы
        .*?
        Но все равно лучше
        Цитата XandoX @
        читай про жадные и не жадные regexp-ы
          Вообще-то, в данном примере самая короткая подстрока - AA :)
            Но возьмет то все равно все три :)
            На крайняк можно .+? :rolleyes:
              ExpandedWrap disabled
                A.+?A

              Цитата fatalist @
              Но возьмет то все равно все три

              почему три?
                потому что .* означает, что символ также может отсутствовать...
                  отсутствовать то он может, только в строке после первого сопоставления AbbbcccA останется AbbbcccA.

                  Добавлено
                  найти три, включая пустую строку, можно только если хвост просматривать вперед, не включая в сопоставление
                  ExpandedWrap disabled
                    A(.*?)(?=A)
                    Цитата liss @
                    отсутствовать то он может, только в строке после первого сопоставления AbbbcccA останется AbbbcccA.
                    Странно... мне казалось идет сравнение вне зависимости от уже найденного... ну да ладно...
                    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                    0 пользователей:


                    Рейтинг@Mail.ru
                    [ Script execution time: 0,0289 ]   [ 18 queries used ]   [ Generated: 27.04.24, 20:11 GMT ]