perl regex: разделитьСлова

программирование perl

В тексте есть ляпы: начало предложения получается слеплено с концом предыдущего. Получается что-то такое:

конецНачало
fooBar
endBeginning

подскажите регу, которая бы разделила их так:
fooBar -> foo Bar

Примечание:
человекпакет,
не помогает:
$t = "fooBar";
print $t =~ s/([a-z])([A-Z])/\1 \2/igox, "\n";

Примечание:
блин! человекпакет!
ну так бы и сказали, что это совсем не перл:
а то вместо $1 пишете \1 )))

ps:
$t = "fooBar";
$t =~ s/([a-z])+([A-Z].*)/$1 $2/igox;
print $t, "\n";
-----
a r

Примечание:
сам накосячил: поставил i - "регистрнезависимость"
вот так работает:
s/\b([a-z]+)([A-Z][a-z]*)/$1 $2/g

НО: работает на fooBar и pitBull, а вот на длинКот - не работает (что делать, чтобы русские символы тоже обрабатывались?)

Примечание:
короче ночь уже и я туплю:

$t =~ s/\b([а-яa-z]+)([А-ЯA-Z][а-яa-z]*)/$1 \l$2/g;
Ответы:
Как-то так примерно. Не уверен насколько это перл, но fooBar на foo и Bar разделит.
s/([a-z])([A-Z])/\1 \2/


15 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.