Подтвердить что ты не робот

Преобразуйте a char в верхний регистр с использованием регулярных выражений (EditPad Pro)

Я написал регулярное выражение в надежде, что я смогу заменить каждое соответствие (это всего лишь один char) на верхний регистр char. Я использую EditPad Pro (однако я готов использовать любой другой инструмент, который позволил бы мне это делать, если это можно попробовать, так как мне нужно сделать это только один раз).

Фон: У меня очень длинный текстовый файл, используемый приложением, чувствительным к регистру, а некоторые слова начинаются с нижнего регистра вместо верхнего регистра char, что приводит к сбою приложения. Это займет очень много времени, и это будет довольно сложно сделать без регулярных выражений, потому что появление (злого) нижнего регистра char очень специфично.

Я написал регулярное выражение select, и теперь я могу использовать его с обратной репликой ($ 1 работает просто отлично), однако я не могу заменить его верхним регистром char. Я думал, что что-то вроде \u $1 будет работать, однако это не в EditPad Pro.

Если бесплатный инструмент не позволяет мне это сделать, я думаю, что альтернативой было бы просто сделать это на С#, однако я немного спешу, а не рядом с компилятором, поэтому мне пришлось бы скачать экспресс-версию во-первых, так... Было бы предпочтительнее найти инструмент, поддерживающий такую ​​функцию!

Спасибо!

4b9b3361

Ответ 1

TextPad позволит вам выполнить эту операцию.

Пример:

test this sentence

Найти что: \([^ ]*\) \(.*\) Заменить на: \U\1\E \2

\U приведет к тому, что все следующие символы будут

\E отключит \U

результат будет:

test this sentence

Ответ 2

EditPad Pro и PowerGREP имеют уникальная функция, которая позволяет вам измените случай обратной ссылки. \U1 вставляет первую обратную ссылку в верхнем регистре, \L1 в нижнем регистре и \F1 с первым символом в верхний регистр и остаток в в нижнем регистре. Наконец, \I1 вставляет его с первой буквой каждого слова заглавные буквы и другие буквы в в нижнем регистре.

Источник: Goyvaerts, Jan (2006). Регулярные выражения: полный учебник. Lulu.com. стр. 35. ISBN 1411677609. Google Books. Получено 25 июня 2010 года.

Ответ 3

Я знаю, что этот поток посвящен EditPad Pro. Но я приехал сюда из-за того, что в javascript regexp такая же потребность.

Для людей, которые здесь нуждаются в одном и том же контенте, для javascript regexp, вы можете использовать функцию в качестве аргумента replace.

Я использую функцию ниже для преобразования имен css с - в эквивалент javascript, например: "border-top" будет преобразован в "borderTop";

s = s.replace(/\-[a-z]/g, function(x){return x[1].toUpperCase();});

Ответ 4

Вы можете сделать это в jEdit, используя параметр "Возвращаемое значение фрагмента BeanShell" в диалоговом окне поиска и замены jEdit. Просто найдите " [a-z]" и замените его на " _0.toUpperCase()" (без кавычек)

Ответ 5

Вы также можете загладить первую букву совпадения, используя \I1 и \I2 и т.д. вместо $1 и $2.