Вставить пробел перед заглавными буквами notepad

Обновлено: 30.06.2024

Я огляделся и нашел хорошие ответы, но ни один из них не работает с notepad++, большинство из них предназначены для java и php. Я нашел строки поиска ниже, но, очевидно, я нуб с regex, так как не знаю, какие теги открытия/закрытия уместны в notepad++.

Я хотел бы добавить пробел перед каждой заглавной буквой.

Вечеринку Stack Overflow

Вот что я нашел.

Найти: [a-z]+[A-Z]+ заменить: $1 (перед $) есть пробел

Любая помощь будет оценена по достоинству.

3 ответа

Как я могу добавить - перед каждой заглавной буквой моей строки, кроме первой заглавной буквы моей строки. У меня есть такая строка HelloWorldMyNameIsCarl, и я использую ее HelloWorldMyNameIsCarl.replaceAll((.)(\\p), $1-$2) он отлично работает. решение есть Hello_World_My_Name_Is_Carl но для.

Я ищу regex, который соответствует слову с более чем 1 заглавной буквой. Расположение заглавных букв может быть где угодно. Он должен соответствовать: ABc aBC ABC Он не должен совпадать: Abc aBc abC abc

Строка поиска: (.)([A-Z])
Замена: \1 \2

Это не вставляет пробелы перед заглавными буквами, которые являются первой буквой в их строке.

это добавит пробел к первому заглавному символу в notepad++ Убедитесь, что вы поставили пробел перед \1 в разделе замена.

WABET : <-from WABET : <-to

В Notepad++ выполните search-n-Replace (ctrl+h), в 'find what' введите '([a-z])([A-Z])' без одинарных кавычек. in 'Replace with' input '\1 \2' без кавычек.

Выберите переключатель 'Regular Expression' и убедитесь, что вы проверили 'Match Case' checkbox. Теперь найдите следующий и продолжайте заменять. он преобразует строки camel или Pascal case в слова с пробелом перед каждой заглавной буквой, кроме первой.

Надеюсь, это будет полезно. Я просто использовал его в одном из своих заданий.

Похожие вопросы:

Мне нужно добавить , перед каждой заглавной буквой строки. Должен ли я использовать regex или split ? Пример: String s = TonyRoyTroyMagic; Я хочу, чтобы результат был таким Tony,Roy,Troy,Magic

Используя Regex Find/Replace в Notepad++, я пытаюсь добавить пробелы между каждой заглавной буквой внутри двойных кавычек: .Label(ATextWhichHasCapitalLetters) .Label(Constants.DefinedLabel).

Привет, у меня есть строка $string = insertUnderScore; теперь мне нужно _ вставить перед заглавной буквой. вывод должен быть таким: $string = insert_Unser_Score; Кто-нибудь может мне помочь.

Как я могу добавить - перед каждой заглавной буквой моей строки, кроме первой заглавной буквы моей строки. У меня есть такая строка HelloWorldMyNameIsCarl, и я использую ее.

Я ищу regex, который соответствует слову с более чем 1 заглавной буквой. Расположение заглавных букв может быть где угодно. Он должен соответствовать: ABc aBC ABC Он не должен совпадать: Abc aBc abC.

Я пытаюсь удалить одно вхождение обратной косой черты перед заглавной буквой Пример: Строкой раньше : /G8/W7m/L/K/V/E/X/B/V/L/O/Y/M//W/At1zg== Строка после : G8W7mLKVEXBVLOYM/WAt1zg== String.replace.

Я хочу dplyr::separate на минус ( - ), который должен быть после пробела и перед заглавной буквой. Мой regex [\s]-[A-Z] включает в себя пробел и заглавную букву, следовательно, удаляет путем.

У меня есть некоторые данные от третьей стороны, и один столбец представляет собой конкатенацию имени и фамилии, но между ними нет пробела. Моя цель-вставить пробел перед второй заглавной буквой.

У меня есть текст: 'SMThingAnotherThingBIGCapitalLetters' и я хочу, чтобы результат был таким: 'SM Thing Another Thing BIG Capital Letters' Мой regex сейчас: r(\w)([A-Z]), r\1 \2 Это работает, когда.

кто-нибудь знает, можно ли добавлять пробелы в строку перед каждой заглавной буквой? У меня есть запрос SQL, где один из столбцов имеет значения, сохраненные без пробела, и мне нужно добавить.

Добрый день, у меня задание, есть строка в которой есть предложение, оно слитное, мне нужно, чтобы перед каждой заглавной (большой) буквой, стал пробел, вроде все сделал, но че-то у меня ничего не пишется, вообще ничего. Не выводится не ошибка, не вывод строки с какой-то ошибкой, или что-то подобное, вообще ничего, не понять в чем ошибка, посмотрите пж.

__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь

Как вывести текст заглавными буквами?
Как вывести текст, но что бы все буквы были заглавными? я вывожу текст следующим образом.


Пробел между буквами и цифрами
Подскажите как должна выглядеть регулярка которая разделяла бы буквы и цифры? То есть если.

Пустота перед clear:both
Всем привет. При верстке часто сталкиваюсь с проблемой, когда при установке элемента со свойством.

я бы добавил эхо внутри цикла, там где вставка в массив и посмотрел что выводит

Решение

Добавлено через 5 минут
Как вариант

Спасибо большое, нужно будет разобраться с регулярными выражениями, полезный инструмент
А что вот это означает
cat <<\X | /c/x/php/php
X

Сижу под win7 . лень запускать какие-то файлы/серверы
Установлено MSYS2 и там консоль позволяет вводить команды как в линуксе

это cat <<X
qwerty
qwerty
X но с перенаправлением вывода на stdin php.exe

cat ./file.txt
выводит содержимое файла
<<\X начало многострочного ввода типа Here Documents , Встроенные документы вроде переводят
\ - говорит что содержимое не интерпритируется , всякие \n $PATH
как такой heredoc в php

| это вроде пайп называется или передача вывода другой команде по конвееру
как в виндовс c:\X\php> php -i | more

Вобщем способ выполнить многострочный код без сохранения в файл и посмотреть результат в консоли
Для ленивых

учитывая строку "ThisStringHasNoSpacesButItDoesHavecapitals", каков наилучший способ добавления пробелов перед заглавными буквами. Таким образом, конечная строка будет "эта строка не имеет пробелов, но у нее есть заглавные буквы"

вот моя попытка с RegEx

regexes будет работать нормально (я даже проголосовал за ответ Мартина Браунса), но они дороги (и лично я нахожу любой шаблон длиннее, чем пара символов, непомерно тупых)

будет делать это 100 000 раз в 2,968,750 тиков, регулярное выражение займет 25,000,000 ТИКов (и это при составленном регулярном выражении).

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

надеюсь, что это помогает :)

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

в строке с "Abbbbbbbbb", повторенной 100 раз (т. е. 1,000 байт), запуск 100 000 преобразований принимает функцию ручного кодирования 4,517,177 ТИКов, а приведенное ниже регулярное выражение принимает 59,435,719, делая ручное кодирование функция запускается в 7,6% времени, которое занимает регулярное выражение.

обновление 2 Будут ли в нем учтены аббревиатуры? Теперь будет! Логика состояния if довольно неясна, как вы можете видеть, расширяя ее до этого .

. совсем не помогает!

вот простой метод, который не беспокоится о аббревиатурах

у вашего решения есть проблема в том, что он ставит пробел перед первой буквой T, поэтому вы получаете

чтобы обойти это, Найдите букву нижнего регистра, предшествующую ей, а затем вставьте пробел посередине:

Edit 1:

если вы используете @"(\p)(\p)" Он также будет подбирать акцентированные символы.

Edit 2:

если ваши строки могут содержать аббревиатуры, которые вы можете использовать это:

таким образом, "DriveIsSCSICompatible" становится "диск совместим с SCSI"

не тестировал производительность, но здесь в одной строке с linq:

Я знаю, что это старый, но это расширение я использую, когда мне нужно сделать это:

Это позволит вам использовать MyCasedString.ToSentence()

все эти решения по существу неправильны для современного текста. Нужно использовать то, что понимает кейс. Поскольку Боб попросил другие языки, я дам пару за Perl.

Я предоставляю четыре решения, начиная от худшего до лучшего. Только лучший, всегда прав. У остальных проблемы. Вот тест, чтобы показать вам, что работает, а что нет, и где. Я использовал подчеркивания, чтобы вы могли видеть, где были пробелы поставьте, и я отмечу как неправильное все, что, ну, неправильно.

кстати, почти все здесь выбрали первый способ, тот, который отмечен как "худший". Некоторые выбрали второй путь, помеченный "OK". Но никто до меня не показывал вам, как сделать "лучший" или "лучший" подход.

вот тестовая программа с четырьмя методами:

когда вы можете забить то же самое, что и "Лучшее" в этом наборе данных, вы будете знать, что сделали это правильно. А до тех пор-нет. Никто здесь не сделал лучше, чем "ОК", и большинство сделали это"хуже". Я смотрю вперед к видеть кто-то пост правильный код♯ ℂ.

Я замечаю, что код подсветки StackOverflow снова жалко сутулится. Они делают все те же старые хромые, что и (большинство, но не все) из остальных бедных подходов, упомянутых здесь. Разве не давно пора положить ASCII на покой? Это больше не имеет смысла, и притворяться, что это все, что у тебя есть. это просто неправильно. Это создает плохой код.

Я решил сделать простой метод расширения, основанный на двоичном коде Worrier, который будет правильно обрабатывать аббревиатуры и повторяется (не будет калечить уже разнесенные слова). Вот мой результат.

вот единичные тесты, которые эта функция проходит. Я добавил к этому списку большинство дел, предложенных Кристом. Три из тех, которые он не проходит (два - просто римские цифры), комментируются:

Binary Worrier, я использовал ваш предлагаемый код, и это довольно хорошо, у меня есть только одно незначительное дополнение к нему:

я добавил условие !char.IsUpper(text[i - 1]) . Это исправило ошибку, которая заставила бы что-то вроде "AverageNOX" превратиться в "Average N O X", что, очевидно, неправильно, поскольку оно должно читать "Average NOX".

к сожалению, у этого все еще есть ошибка, что если у вас есть текст "FromAStart", вы получите "от AStart".

любые мысли о фиксации это?

на \B это отрицается \b , поэтому он представляет собой границу без слов. Это означает, что шаблон соответствует " Y " в XYzabc , но не Yzabc или X Yzabc . Как маленький бонус, вы можете использовать это на строке с пробелами в ней, и это не удвоит их.

то, что у вас есть, работает отлично. Просто не забудьте переназначить value к возвращаемому значению этой функции.

Хотя эта статья гордо и названа Регулярные выражения в notepad++, это скорее шпаргалка, для самого себя, а также может быть кому-то ещё, пригодится. Смысл её таков, что иногда мне бывает что-то поменять, добавить или удалить в тексте. Как и всякий ленивый человек, я пытаюсь этот процесс облегчить, ускорить, короче оптимизировать и автоматизировать.

Другими совами, я где-то когда-то узнал про регулярные выражения, попробовал, у меня получилось и мне понравилось. Теперь сталкиваясь с необходимостью указанной в первом абзаце, я начинаю вспоминать, а как я это сделал? Естественно благополучно не вспомнив, начинаю «лопатить» интернет в поисках ответа на свои «хотелки».

Это небольшое отступление к тому, что если вы знаете регулярные выражения и умеете ими пользоваться, это статья не для вас, но спасибо, что заглянули, возможно, в комментарии укажите более простой способ если только. Итак, не претендуя на сколь ни будь значимость, и важность приступим, помолясь.



Рисунок 1

Прошу прощения за несколько сумбурность сей статьи, она будет набираться, обновляться и дополняться, как мне на душу легло, а не как вам, кажется, должно быть.

√ . — Точка представляет один любой символ

√ ^ — Начало строки

√ $ — Конец строки

√ \S — Не Пробел

√ \w — буква, цифра или подчёркивание _

√ \d — Любая цифра

√ \D — Любой символ, но не цифра

√ 8 — Любая цифра

√ [a-z] — Любая буква от a до z (весь латинский набор символов) в нижнем регистре

√ [A-Z] — Любая буква от a до z в ВЕРХНЕМ регистре

√ [a-zA-Z] — Любая буква от a до z в любом регистре

√ [a-Z] — То же самое

√ * — «Повторитель». Означает, что предшествующий символ может повторяться (0 или более раз)

√ .* — Абсолютно любой набор символов. Например, условие <p> .*</p> — найдет все что между тегами <p> </p>

√ (^.*$) — Любой текст между началом и концом строки

√ (65*.) — ищет любые двухзначные в данном случае цифры

√ \n\r — Ищет пустые строки. Вроде как если оставить пустым окно "Заменить" то удаляет пустые строки, но можно поставить вот это \0

√ ^\s*$ — Ищет пустые строки содержащие пробел.

√ ^[ ]*$ — Ищет пустые строки содержащие пробел.

Добавление знаков в начале и конце строки, абзаца

Допустим, необходимо некий текст, скопированный например из ворда, заключить в теги <p></p>

Ставим в "найти" - (^.*$) ищет соответственно начало и конец строки.

Ставим в "заменить на" - \1 и то, что нужно вставить в начало и конец строки, у нас в примере это <p></p>

Выражение будет иметь следующий вид:<p>\1</p>. Как показано на рисунке 1. В дальнейшем нет нужды в рисунках, так они будут идентичны этому, с той лишь разницей, что выражения, там будут другие.

*** Прим. Добавление круглых скобок () в поле найти, обязательно, иначе будет убирать текст.

Добавление знаков в начале или в конце строки, абзаца

Допустим, необходимо некий текст, скопированный например из ворда, заключить в одиночный тег </br> это тег перевода строки, не всегда удобно и нужно оборачивать его в теги <p></p>. Ну я так считаю, возможно и неправильно, но допустим это стих, песня или анекдот, где все строчки короткие и каждая строка новая, мне нравится тут одиночный тег больше.

Для этого в поле "найти" вводим символ $ Конец строки, а в поле "заменить на" вводим нужный нам тег или что то другое, в данном случае тег </br> не забывая добавить \1, то есть выглядит это так - </br>\1 . В данном случае мы только добавляем нужный нам тег, поэтому в круглые скобки в общем то, не нужны, но если поставить, также будет заменять корректно.

Аналогично можно добавлять что-нибудь и в начале строки, заменив в поле найти на символ ^ начала строки, наверное .

Как то возникла у меня необходимость удалить пустые строки в документах, и не только просто пустые но и содержащие пробелы. Всё бы ничего если бы это был один-два файла, есть в Notepad++ в операциях со строками такие функции как «Удалить пустые строки» и «Удалить пустые строки (Содер. символы Пробел)».

Но вот беда, мне нужно было это сделать где-то примерно в 25-28 файлах, и в принципе, это тоже нетрудно. Но, мы, же знаем регулярные выражения, подумал я и решил, процесс облегчить. Итак, суть в том, что в блокноте в «Поиске и Замена» есть кнопочка, «Заменить во всех Открытых документах», вот не неё и была вся моя надежда.

Поискав в интернете, долго ли коротко ли, отовсюду понемножку нашел информацию как это сделать, попробовал – получилось.

Поэтому пишу здесь, чтобы самому не забыть, и быть может другим подсказать.

Пункт 1. Удаления пустых строк

В поле "найти" вводим \n\r - ищет пустые строки, вроде как если оставить пустым окно "Заменить" то удаляет пустые строки, но можно поставить вот это \0. Ну а далее всё просто открываем все файлы, которые нам нужно «почистить», вводим символы и жмём «Заменить во всех Открытых документах».

Результат: Во всех открытых документах, пустые строки, не содержащих пробелов удалены.

Пункт 2. Удаления пустых строк, содержащих символы Пробел

Тут работа происходит в два этапа, сначала удаляем символы Пробел, а потом пустые строки как это сделать указано в пункте 1.

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

В поле "найти" вводим ^[ ]*$ или ^\s*$ - ищет пустые строки содержащие пробел (не знаю, может у кого-то с одним не получится набором, попробуйте с другим), аналогично вроде как, если оставить пустым окно "Заменить" то удаляет пробелы, но можно поставить вот это \0. Ну а далее всё просто открываем все файлы, которые нам нужно «почистить», вводим символы и жмём «Заменить во всех Открытых документах».

Результат: Во всех открытых документах, пустые строки очищены от пробелов.

Читайте также: