Редактор Atom: RegEx заменить на верхний / нижний регистр

Я пытаюсь заменить некоторые символы в строке их эквивалентами в верхнем / нижнем регистре в редакторе Atom.

Допустим, у меня есть строка:

some:test:sequence

и хотите результата:

Some:Test:Sequence

Мне известны такие вещи, как \u$1 и \l$1, но они не работают в Atom, поскольку Atom использует RegEx в стиле JS. Однако найденные мной решения JS-RegEx всегда включают вызов функции (см. Пример здесь), что невозможно в Атом, афаик.

Кто-нибудь знает, есть ли способ этого добиться? Я также не возражаю против установки пакета для более мощного поиска / замены регулярных выражений, но я не нашел его и не хотел бы писать его самостоятельно только для этого.

Обратите внимание: я не ищу решения для поиска / выбора символов. Выбор работает нормально и немного сложнее, как в примере.


person max    schedule 23.02.2015    source источник
comment
так что вы не можете использовать регулярное выражение? а как насчет пользовательской функции с чистым JavaScript?   -  person Halayem Anis    schedule 23.02.2015
comment
Я думаю, вы неправильно поняли мой вопрос. Я уже использую регулярное выражение, я просто не могу заставить работать replace-with-uppercase. Кроме того, как я уже писал, я не думаю, что вызов любого JS возможен без создания пакета.   -  person max    schedule 23.02.2015
comment
Atom включает регулярные выражения Oniguruma только для грамматик, во всех остальных местах он использует стандартные регулярные выражения JavaScript. Сказать, что Atom построен на Oniguruma, было бы неправильно.   -  person Lee    schedule 23.02.2015
comment
Хорошо, спасибо за пояснение, Ли. Я предположил, что если для Atom уже доступен мощный движок регулярных выражений, они использовали его и для других целей, просто как-то ограничив его. Я удалил эту часть из вопроса.   -  person max    schedule 23.02.2015
comment
Мне бы очень хотелось, чтобы эта функциональность была включена и в Atom.   -  person inteist    schedule 15.05.2015
comment
Я открыл заявку на связанный запрос: github.com/atom/atom/issues/7486   -  person Billybobbonnet    schedule 27.06.2015


Ответы (4)


Обратите внимание: хотя вы сказали, что вопрос не в выборе, я использую более упрощенный пример.

Если у вас есть строка, состоящая из: This is a Mixed case String! I want every Letter to Start with A Capital.

Вы можете использовать селектор регулярных выражений \b\w, чтобы найти первые символы каждого слова в строке. (Выполнено с помощью Cmd + F и щелчка .* в правом меню для поиска Regex)

Теперь нажмите Alt + Enter, чтобы выбрать все найденные результаты, это должно выделить все результаты запроса Regex. После этого, чтобы сделать каждую первую букву заглавной, вы можете нажать Cmd + K -> Cmd + U, вы можете изменить их, как хотите, отсюда.

Бум! Теперь строка должна выглядеть так: This Is A Mixed Case String! I Want Every Letter To Start With A Capital.

Я давно искал ответ на этот вопрос, вот мои источники ответа:

person Aaron Critchley    schedule 13.10.2015
comment
Бум! Вы, сэр, сделали мой день. - person stib; 09.06.2017
comment
Но вы можете применять это только к одному файлу за раз, тогда как решение для поиска с регулярным выражением (если оно существует) будет применяться сразу к нескольким файлам. - person combinatorist; 04.10.2017
comment
Примечание: вы должны нажать Alt (Option) + Enter , пока активен ввод текста для поиска. - person Tamás Sengel; 17.01.2018

Нажмите Alt + Enter, чтобы выбрать все совпадения, затем перейдите в меню: Правка -> Текст -> Верхний или Нижний регистр.

person Sergey Panarek    schedule 01.09.2018

Простым решением в рамках простого Regex было бы выполнять замену для каждого символа отдельно. Это, вероятно, непрактично (если вам нужно запускать каждую замену вручную), но это работает.

Найдите все строчные буквы «а» в начале каждого слова, замените их прописными буквами «А». Затем 'b' вместо 'B', ... пока у вас не будут все символы, соответствующие вашему целевому языку / набору символов.

person azt    schedule 11.09.2015

Для меня он работал с селектором Regex \s\w, чтобы найти первые символы каждого слова в строке.

Для Mac:

cmd + F -> \s\w -> click on .* -> option+enter -> cmd+K -> cmd+U
person vishal munde    schedule 23.09.2020