Як замінити * символ тим, що його знайдено


0

Я не можу знайти конкретно те, що шукаю, можливо, тому що це неможливо. По суті, я хочу знайти великі слова та замінити їх великими літерами з подальшим перервою на перевезення.

Я щось роздумував ([A-Z])*([A-Z]) = /1/2/3^p, але я отримую повідомлення про помилку, в якому йдеться про те, що число є поза межами діапазону, і будь-який інший спосіб, який я намагався, в основному замінює лише першу та останню букву недоторканою.

Чи є надія?


Ви позначили лише два поля (...), значить \3, поза межами діапазону. Я не встиг перевірити, але, припускаючи, що Word обробляє весь спектр регулярних виразів, тоді все, що вам потрібно, це ([A-Z]*[A-Z])-> \1^p, де \1посилається на всю відповідну рядок. Жадібна відповідність гарантує відповідність усього слова, хоча рядок на зразок ABC123DEFбуде замінено, як ви можете, чи не захочете.
AFH

Відповіді:


0

Ви отримуєте помилку, оскільки у вашому операторі Find є лише два набори круглих дужок, що позначають логічні рядки, ([A-Z])*([A-Z])а у вашому операторі Replace /1/2/3^pви говорите про три набори.

Якщо ви хочете залишити оператор Замінити таким, яким є, то змініть оператор Find на ([A-Z])(*)([A-Z]). Хоча, можливо, ви не дуже задоволені результатами, які вони повертають, але спробуйте і подивіться, чи це ви хочете. Він поверне кілька слів завдяки включенню *підстановки.

Краще твердження Find для знаходження всіх великих літер: <([A-Z]{2,10})> Це ліві та праві символи стрілок направляють на пошук, щоб знайти лише слова, які починаються із включених критеріїв. Поле керування з фігурними дужками повідомляє Знайти, що має бути як мінімум 2 символи та максимум 10 (я просто випадковим чином вибрав 10 як макс. Ви можете встановити його на що завгодно) з попередніх критеріїв. Використовуючи цей підстановочний код Find, слід замінити оператор /1^p.

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