На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: ALXR
  
    > Как сделать пробел между цифрами и текстом , Как сделать пробел между цифрами и текстом
      Как сделать пробел с помощью регулярного выражения между цифрами и текстом. Например "01Растениеводство" сделать разделение меду 01 и Растениеводство, 01.1 и Выращивание, 01.11 и Выращивание зерновых, 01.11.1 и Выращивание зерновых культур. Пример кода ниже. Регулярное выражение будет вставляться в Sublime Text для разделения последней цифры от первой буквы. тип регулярки re:(\d+)


      01Растениеводство и животноводство, охота и предоставление соответствующих услуг в этих областях
      01.1Выращивание однолетних культур
      01.11Выращивание зерновых (кроме риса), зернобобовых культур и семян масличных культур
      01.11.1Выращивание зерновых культур
      01.11.11Выращивание пшеницы
      01.11.12Выращивание ячменя
      01.11.13Выращивание ржи
      01.11.14Выращивание кукурузы
      01.11.15Выращивание овса
      01.11.16Выращивание гречихи
      01.11.19Выращивание прочих зерновых культур
        Ну например
        ExpandedWrap disabled
          ((\d+\.?)+)([^0-9. ]\S+)
        Строка замены просто
        ExpandedWrap disabled
          $1 $3
          ExpandedWrap disabled
            ([0-9\.]+)(.*)

          Тестировать тут.
          Если же нужно захватывать пробелы в начале строки, то вот так:

          ExpandedWrap disabled
            ^([0-9\. ]+)(.*)$


          Добавлено
          Цитата Qraizer @
          Ну например
          ExpandWrap offLine numbers
          ((\d+\.?)+)([^0-9. ]\S+)
          Строка замены просто
          ExpandWrap offLine numbers
          $1 $3

          Нет, твой регексп неправильный. Смотри.
            Первые 2, после цифр все удаляет, но третий код регулярки помог. Спасибо.
              И что там неправильного? То, что я не буду вставлять пробел, когда он уже и так есть? Или то, что он индифферентен к параметру жадности по умолчанию? Я что-то не вижу по ссылке отличий.
                Цитата Qraizer @
                И что там неправильного?

                У тебя $3 не забирает всю оставшуюся часть строки, а только первое слово.
                  А надо разве? Поиск-то тоже не по всей строке идёт. Это ты решил расставить ^ с $ по бокам, у меня их нет. То, что не попало под регулярку, должно остаться неизменным. Оно и останется. Проверь Search and Replace в любом редакторе, хоть бы и в FARе. Хошь я тебе на Плюсах с <regex> продемонстрирую?

                  Добавлено
                  ExpandedWrap disabled
                    #include <iostream>
                    #include <string>
                    #include <regex>
                     
                    using namespace std::literals;
                     
                    int main()
                    {
                      std::string str = "01.11.1Выращивание зерновых культур";
                      std::regex  rg("((\\d+\\.?)+)([^0-9. ]\\S+)"s);
                      std::string out = std::regex_replace(str, rg, "$1 $3"s);
                     
                      std::cout << out << std::endl;
                    }
                  ExpandedWrap disabled
                    01.11.1 Выращивание зерновых культур
                  Сообщение отредактировано: Qraizer -
                    Цитата Qraizer @
                    А надо разве? Поиск-то тоже не по всей строке идёт. Это ты решил расставить ^ с $ по бокам, у меня их нет. То, что не попало под регулярку, должно остаться неизменным. Оно и останется. Проверь Search and Replace в любом редакторе, хоть бы и в FARе. Хошь я тебе на Плюсах с <regex> продемонстрирую?

                    Ну, в принципе, для поиска-замены вся строка и не нужна. Ok, развидь, что я написал выше 8-)
                      Та не, в общем случае замечание резонное. Другое дело, что непонятно, действиетльно ли оно важно.
                        :-?
                        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                        0 пользователей:


                        Рейтинг@Mail.ru
                        [ Script execution time: 0,1833 ]   [ 15 queries used ]   [ Generated: 26.04.24, 17:09 GMT ]