Вставить тире в строку перед словами в верхнем регистре

Тема в разделе "Регулярные выражения", создана пользователем Sunday, 10 окт 2017.

Модераторы: xpert13
  1. Sunday

    Sunday

    Регистр.:
    13 дек 2009
    Сообщения:
    765
    Симпатии:
    326
    Есть большой список такого типа:
    Слова и фразы в верхнем регистре — это названия песен. Подскажите, как при помощи регулярки вставить между исполнителем и названием тире?

    Спасибо!

    Меняю это
    Код:
    (.*) ([А-ЯA-Z ]*)
    на это:
    Код:
    $1 - $2
    Но все строки, где правая часть состоит более чем из одного слова заменяются некорректно. Например так:
    вместо:
    Чёта с пробелами не так?
     
    Последнее редактирование: 10 окт 2017
  2. Q_BASIC

    Q_BASIC

    Регистр.:
    30 ноя 2013
    Сообщения:
    406
    Симпатии:
    280
    #([А-ЯЁA-Z\s]{3,})#u
     
    Последнее редактирование: 10 окт 2017
  3. Sunday

    Sunday

    Регистр.:
    13 дек 2009
    Сообщения:
    765
    Симпатии:
    326
    @Q_BASIC ничё не понял :confused: Шо с этим добром делать и где тут тире пихать? Это для php?
    Мне бы регулярку для notepada например :ah:
     
    Последнее редактирование: 10 окт 2017
  4. Q_BASIC

    Q_BASIC

    Регистр.:
    30 ноя 2013
    Сообщения:
    406
    Симпатии:
    280
    Php:
    PHP:
    preg_replace('#([A-ZА-ЯЁ\s]{3,})#u'' -$1''Александр Башлачев ВРЕМЯ КОЛОКОЛЬЧИКОВ
    Дельфин ВЕСНА
    Егор Летов ВСЕ КАК У ЛЮДЕЙ
    Владимир Высоцкий БАЛЛАДА ОБ УХОДЕ В РАЙ
    Калинов Мост РОДНАЯ
    Любэ КОНЬ'
    );
    Нотепад:
    Заменить ([A-ZА-ЯЁ\s]{3,}) на - $1
     
    Последнее редактирование: 10 окт 2017
    Sunday нравится это.
  5. Sunday

    Sunday

    Регистр.:
    13 дек 2009
    Сообщения:
    765
    Симпатии:
    326
    Может я чёта не понимаю, но эта конструкция не работает. :confused:
    В 1-м сообщении я привёл полурабочий пример. Там тока с правой частью проблема почему-то. не могу понять в чём трабл :conf:
     
  6. Q_BASIC

    Q_BASIC

    Регистр.:
    30 ноя 2013
    Сообщения:
    406
    Симпатии:
    280
    Галочка "учитывать регистр" есть? А с "и новые строки" лучше убрать. Заменять на " -$1"

    У меня всё работает
     
    Sunday нравится это.