Как поставить пробел перед заглавной буквой
Перейти к содержимому

Как поставить пробел перед заглавной буквой

  • автор:

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

Предположим, у вас есть список текстовых строк, в котором все пробелы между словами удалены случайно, например: InsertBlankRowsBetweenData, и теперь вы хотите добавить пробелы перед каждой буквой с заглавными буквами, чтобы разделить слова как Вставить пустые строки между данными. Как вы могли быстро добавить пробелы перед заглавными буквами вместо одного за другим в Excel?

  • Вставьте пробелы перед заглавными буквами с помощью функции, определяемой пользователем
  • Вставить пробелы перед заглавными буквами с кодом VBA
  • Вставить пробел перед каждой заглавной буквой с помощью Kutools for Excel
Вставьте пробелы перед заглавными буквами с помощью функции, определяемой пользователем

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

1 . Активируйте свой рабочий лист, содержащий текстовые строки, в которые вы хотите добавить пробелы.

2 . Удерживая нажатыми клавиши ALT + F11 , откройте окно Microsoft Visual Basic для приложений .

3 . Нажмите Вставить > Module и вставьте следующий код в окно модуля .

Код VBA: вставляйте пробелы перед заглавными буквами

4 . Затем сохраните и закройте этот код, вернитесь на рабочий лист и введите эту формулу = addpaces (A1) в пустую ячейку помимо ваших данных, см. Снимок экрана:

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

Легко удалять начальные/конечные/лишние пробелы в ячейках

Kutools for Excel’s Удалить пробелы утилита позволяет Пользователи Excel могут легко удалить все начальные и конечные пробелы, лишние пробелы или все пробелы из выбранных ячеек. 30-дневная бесплатная пробная версия полнофункциональной версии!

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

Вот еще один VBA код может оказать вам услугу, пожалуйста, сделайте следующее:

1 . Удерживая нажатыми клавиши ALT + F11 , откройте окно Microsoft Visual Basic для приложений .

2 . Нажмите Вставить > Module и вставьте следующий код в окно модуля .

Код VBA: вставляйте пробелы перед заглавными буквами

3 . Затем нажмите клавишу F5 , чтобы выполнить этот код, появится всплывающее окно, позволяющее выбрать диапазон данных, который вы хотите использовать.

4 . Затем нажмите OK , чтобы закрыть это окно подсказки, пробелы были вставлены сразу перед заглавными буквами, см. Снимок экрана:

Вставить пробел перед каждой заглавной буквой с помощью Kutools для Excel

Kutools for Excel’s Добавить текст утилита может помочь вам обойти макросы VBA и легко вставить пробел перед каждой заглавной буквой в Excel.

Kutools for Excel – включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная 30-дневная пробная версия, кредитная карта не требуется! Бесплатная пробная версия!

Kutools for Excel – объединяет более 300 дополнительных функций и инструментов для Microsoft Excel

1 . Выберите диапазон, в который вы будете вставлять пробел перед заглавными буквами, и нажмите Kutools > Текст > Добавить текст . См. Снимок экрана:

2 . В открывшемся диалоговом окне Добавить текст введите пробел в поле Текст , установите флажок Только добавить в и выберите 1-я буква верхний регистр из раскрывающегося списка Только добавить в .

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

Kutools for Excel – Включает более 300 удобных инструментов для Excel. Полнофункциональная 30-дневная бесплатная пробная версия, кредитная карта не требуется! Получить сейчас

Примечания . Этот метод также добавит пробел в начале ячеек, если первая буква заглавная. Вы можете применить Kutools > Text > Remove Spaces , чтобы удалить все ведущие пробелы из выбранных ячеек.

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

Учитывая строку «ThisStringHasNoSpacesButItDoesHaveCapitals», как лучше всего добавить пробелы перед заглавными буквами. Таким образом, конечная строка будет выглядеть так: «В этой строке нет пробелов, но есть заглавные буквы».

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

30 ответов

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

Сделает это 100000 раз за 2968750 тиков, регулярное выражение займет 25000000 тиков (и это с скомпилированным регулярным выражением).

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

Надеюсь это поможет 🙂

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

В строке, в которой «Abbbbbbbbb» повторяется 100 раз (т. Е. 1000 байт), запуск 100000 преобразований занимает 4517177 тиков для функции, закодированной вручную, а приведенное ниже регулярное выражение занимает 59435719, что позволяет функции, закодированной вручную, работать в 7,6% времени, затрачиваемого на выполнение Регулярное выражение.

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

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

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

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

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

Добро пожаловать в Unicode

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

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

Кстати, здесь почти все выбрали первый путь, отмеченный как «Худший». Некоторые выбрали второй способ с пометкой «ОК». Но до меня никто не показал вам, как использовать подход «Лучше» или «Наилучший».

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

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

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

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

У меня есть строка «MySites» . Я хочу разместить пробел между My и Sites .

Как это сделать в jQuery или JavaScript?

5 ответов

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

Здесь будет найдено каждое вхождение символа нижнего регистра, за которым следует символ верхнего регистра, и вставьте пробел между ними:

Могу ли я предложить небольшое изменение для принятого в настоящее время ответа:

Это означает, что:

Что может быть немного более полезно, если вы имеете дело с именами столбцов db (и используют некоторые аббревиатуры для некоторых вещей)

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

newString будет иметь нужное значение. Кроме того, если вы хотите сократить код с помощью регулярного выражения, вы можете использовать следующий код из Javascript camelCase для обычной формы

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

у меня есть строка «MySites» . Я хочу поместить пробел между My и Sites .

как я могу сделать это в jQuery или JavaScript?

6 ответов:

вы можете просто добавить пробел перед каждой заглавной характер и обрезать начальные и конечные пробелы

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

для особых случаев, когда 2 последовательных заглавных буквы происходят (например: ThisIsATest) добавить дополнительный код ниже:

могу ли я предложить небольшое изменение к принятому в настоящее время ответу:

Это означает, что:

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

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

newString будет иметь значение. Кроме того, если вы хотите сократить свой код с помощью регулярного выражения, вы можете использовать следующий код из Javascript camelCase в обычную форму

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

http://jsfiddle.net/uXy64/

можно использовать String#split() и взгляд вперед для заглавной буквы алфавита ( [A-Z] ) и нажмите Array#join() массив с пробелом:

или, как функция объекта строки:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *