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

у меня есть несколько вариантов

a.  firms and government.
b.  households and firms.
c.  analyzing available data.
d.  being objective.

Я хочу заменить их в следующей форме

A. Firms and government.
B. Households and firms.
C. Analyzing available data.
D. Being objective.

Вот моя попытка регулярного выражения на regex101
Найдите \t[a-z]. \t и замените на [\U\1].

Хотя я могу использовать простую замену в АЭС, а. к А. к д. к D. но режим regx должен быть более эффективным.

Найдите ^\h*[a-z]\.\h*[A-Za-z] и замените на \U$0, см. демонстрацию регулярных выражений.

Wiktor Stribiżew 27.08.2024 09:46

Вы используете группу 1 в своей замене, но в вашем регулярном выражении нет группы 1. Вместо этого вы можете просто использовать полное совпадение \U$0.

The fourth bird 27.08.2024 09:57

спасибо. если есть еще способ уменьшить широкое пространство «А. От» до «А. Фирма» только с одним пространством.

jx chang 27.08.2024 09:57

Так? \h*\t([a-z]\.)\h+([a-zA-Z])regex101.com/r/F9ANJy/1 и замените на \U$1 \U$2

The fourth bird 27.08.2024 10:09
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
4
51
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Notepad++ или VSCode напрямую не поддерживают замену текста заглавными буквами. Для этого вам нужно написать скрипт:

Регулярное выражение, которое будет соответствовать нескольким вариантам:

'[*][*](\w).\s+(\w)(.+)'

И весь код Python для замены их заглавной формой выглядит следующим образом:

text = """
**a.    firms and government.**

**b.    households and firms.**

**c.    analyzing available data.**

**d.    being objective.**
"""


import re

pattern = r'[*][*](\w).\s+(\w)(.+)'

def replace_func(match):
    return f'**{match.group(1).upper()}. {match.group(2).upper()}{match.group(3)}'

result = re.sub(pattern, replace_func, text)
print(result)

«Notepad++ [...] напрямую не поддерживает замену текста с заглавной буквы». - да, npp-user-manual.org/docs/searching/…

C3roe 27.08.2024 10:02
Ответ принят как подходящий

Вы можете использовать

Найдите что: ^\h*([a-z]\.)\h*([a-zA-Z])
Заменить на: \U$1 $2

Посмотрите демонстрацию регулярных выражений .

Подробности

  • ^ - начало линии (на АЭС)
  • \h* — любые ноль или более горизонтальных пробелов.
  • ([a-z]\.) — Группа 1: буква ASCII (строчная, но она может соответствовать и верхнему регистру, если вы выберете опцию «Согласовать регистр»)
  • \h* — любые ноль или более горизонтальных пробелов.
  • ([a-zA-Z]) — Группа 2: любая буква ASCII.
  • \U$1 $2\U переводит следующие символы в верхний регистр, а $1/$2 обозначают текст, захваченный в соответствующие группы.

Другие вопросы по теме

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

String#gsub, как использовать совпадение в атрибуте replace, а также вставлять линию разрыва
Bash-скрипт для сокращения имени файла до длины не более n, но без обрезки целых слов
Как извлечь часть строки с помощью sed?
Как использовать регулярное выражение для извлечения набора определенных подстрок?
Негативный просмотр, похоже, не работает должным образом
Объединить многострочные строки в фрейме данных pandas на основе шаблона регулярного выражения
Регулярное выражение для текста, разделенного запятыми, с необязательными двойными кавычками, которые могут содержать кавычки, экранированные обратной косой чертой
Почему эта замена регулярного выражения с использованием захвата зависает в этом быстром коде?
Токенизация XSLT с помощью регулярного выражения для токенизации только в том случае, если за точкой с запятой не следует пробел и число
Regex соответствует определенным шаблонам URL-адресов