Я пытаюсь придумать метод поиска и замены для использования заглавной буквы после тега, но мне не повезло.
Я использую режим регулярного выражения Notepad++
.
2 ответа
В Notepad ++ включите режим регулярных выражений в диалоговом окне «Найти и заменить», затем найдите:
(?<=<p>)(.)
И замените на:
\U\1
Чтобы объяснить шаблон, который нужно сопоставить:
(?<=a)b # A positive lookbehind, i.e. match all b that immediately follow a, but
# don't match the "a" itself.
(.) # Find any character (i.e. "."), and capture it.
(?<=a)(.) # Find any character that immediately follows a, and capture it.
И замена:
\1 # The first captured substring in each match.
\Ux # Convert x to upper case.
\U\1 # Convert the first captured substring in each match to upper case.
Обратите внимание, что это пытается преобразовать первый символ в верхний регистр. Если между <p>
и буквой, которую вы хотите сделать заглавной, могут быть другие небуквенные символы, вы можете использовать шаблон:
(?<=<p>)([^A-Za-z]*)(.)
# [^x] Matches any character that is not x.
# [^A-Za-z] Matches any character that is not one of the upper case
# or lower case letters.
# x* Matches zero or more consecutive x.
# [^A-Za-z]* Matches zero or more consecutive characters that are not
# upper case or lower case letters.
И заменить на
\1\U\2 # The first captured substring (any non-letter characters
# that immediately follow <p>) followed by the second captured
# substring (the first letter that appears after <p>), which
# is converted to upper case.
В шаблоне, который необходимо найти, говорится: «сопоставить (и захватить в группе захвата 1) любые небуквенные символы, которые следуют сразу за <p>
, а затем сопоставить (и захватить в группе захвата 2) первый символ, который следует сразу за небуквенные символы (которые, конечно, должны быть буквой, которая должна быть прописной) ". Обратите внимание, что, поскольку мы используем *
, совпадение также будет результатом, если после <p>
нет небуквенных символов, и в этом случае первая группа захвата будет просто содержать пустую строку.
/<p>\s*(.){1}/
Это будет соответствовать тегу <p>
, за которым следует любой вид пробелов ноль или более раз, за которым следует любой символ 1 раз, и он запомнит 1 символ, чтобы вы могли использовать его позже, чтобы преобразовать его в верхний регистр.
Похожие вопросы
Связанные вопросы
Новые вопросы
regex
Регулярные выражения предоставляют декларативный язык для сопоставления шаблонов в строках. Они обычно используются для проверки строк, разбора и преобразования. Укажите язык (PHP, Python и т. д.) или инструмент (grep, VS Code, Google Analytics и т. д.), который вы используете. Не размещайте вопросы, требующие объяснения того, что означает символ или чему будет соответствовать конкретное регулярное выражение.