Добрый день.
Не могу сообразить какое выражение нужно для такого преобразования:
OneTwoThree в
one-two-three или One-Two-Three (регистр не важен, просто первый вариант красивее)
То есть, если я знаю заранее количество слов, то заменить не проблема. Но слов может быть любое количество, соответственно, ни одного нормального выражения для замены, без дефисов в конце, в голову не приходит.
Здравствуйте, prima_lux, Вы писали:
_>Не могу сообразить какое выражение нужно для такого преобразования: _>OneTwoThree в _>one-two-three или One-Two-Three (регистр не важен, просто первый вариант красивее) _>То есть, если я знаю заранее количество слов, то заменить не проблема. Но слов может быть любое количество, соответственно, ни одного нормального выражения для замены, без дефисов в конце, в голову не приходит.
С приведением в нижний регистр несколько сложнее, в одно выражение уложиться сходу не могу. Такой вариант:
s/(.)([A-Z])/$1-\L$2/g;
даёт нижний регистр, но только для тех букв, к которым применялась замена, т.е. первая буква останется заглавной (One-two-three). Наверное, можно как-то извратиться, но раз регистр не важен…