Как использовать Regex для преобразования начальной буквы строки в верхний регистр - PullRequest
2 голосов
/ 27 января 2020

Имеется несколько строк в редакторе (например, Rubymine или IntelliJ), которые выглядят следующим образом:

list: ["required", "TBD во время ввода", "респиратор, перчатки, комбинезоны и т. д. c. "]

Как использовать встроенный поиск Regex и заменить его для преобразования начальных букв в верхних case?

На это:

список: [«Обязательно», «Оплата труда при поступлении», «Респиратор, перчатки, комбинезон и др. c.»]

ПРИМЕЧАНИЕ ХОРОШО: «TBD» должно оставаться как «TBD», а не «Tbd»

Ответы [ 2 ]

2 голосов
/ 27 января 2020

Вы можете сопоставить любую строчную букву, которой предшествует ":

Поиск : (?<=")\p{Ll} Заменить : \U$0

См. Демонстрационную версию regex . Установите флажок Соответствовать регистру , чтобы обеспечить сопоставление только строчных букв.

Подробности

  • (?<=") - a положительный взгляд, который гарантирует, что предыдущий символ представляет собой "
  • \p{Ll} - любую строчную букву Unicode.

Обратите внимание, что \U - оператор преобразования в верхнем регистре - не требует завершающий \E, если вам не нужно ограничивать его область действия, а обратная ссылка $0 относится ко всему значению соответствия, нет необходимости заключать весь шаблон в группу захвата.

2 голосов
/ 27 января 2020

(у IntelliJ и RubyMine действуют Java действующие правила регулярных выражений, я думаю.)

(Для моего будущего я) я использовал следующее регулярное выражение:

Поиск: "(?)([a-z])

Заменить: "\U$1\E

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

enter image description here

И это сработало!

...