Як використовувати REGEX для написання великої літери кожного слова у реченні?


4

Я хотів би використовувати регулярні вирази (REGEX) для написання великої літери кожного слова у реченні.

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


Як би ви поводилися з випадком, коли у вас є абревіатура? Будь ласка, надайте зразки з інших мов, на яких ви це зробили.
Девід

як-от "тестування тестування" повинно повернути "Тестування тесту", я працюю над ним з MSL, і цей код робить саме те саме, але я знаю, що існує спосіб використання псевдоніму reggex пр. {var% x = 1,% y = $$ 1 ,% z в той час, (% x <= $ numtok (% y, 32)) {% z =% z $ + ($ верхній ($ лівий ($ gettok (% y,% x, 32), 1)), $ середина ($ gettok (% y,% x, 32), $ iif ($ len ($ gettok (% y,% x, 32)) == 1, $ remove (% x, $ right ($ gettok (% y ,% x, 32), 1)), $ + (-, $ calc ($ len ($ gettok (% y,% x, 32)) - 1))))) inc% x} повернути% z}
Sirius_Black

Також, який тип регулярного вибору ви хочете використовувати? наприклад PCRE? POSIX? Є тонкі відмінності, і це має різницю в тому, де і / або якими мовами ви хочете використовувати REGEX.
Девід,

Це мова сценарію mirc?
Девід

Відповіді:


3

Приклад за допомогою sedкоманди.

~$ echo "foo bar" | sed  's/^\(.\)/\U\1/'

Де:

  • ^являє собою початок рядка.
  • . відповідає будь-якому символу.
  • \U перетворюється на великі регістри.
  • \( ... \)визначає розділ, на який слід посилатися пізніше (як \1у цьому випадку ).

я зрозумів, що я можу використовувати /^(.)|(?<=\s)(.)/g або / \ b (\ S) / g, але дякую
Sirius_Black

1
\U- все, що йде в верхньому регістрі, \uнаступний символ лише у верхньому регістрі
Марк Єронім

Також можна зробити з vim
jpaugh
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.