Intereting Posts
Что означает знак @ в выводе ls на терминале Mac OSX Lion? делегирование зоны в Bind Fedora 25, pptp подключается, но не работает, слишком много переданных пакетов попытка поместить динамические входные данные в переменную с помощью метода cat Tinny Audio на Linux Mint Cinnamon 18.1 Беспроводной контроллер Intel 8260 блокирует приостановку в ОЗУ в течение 10 секунд В чем разница между размером файла между символьными и жесткими ссылками? Что установлено как / on initramfs, когда указанный корень недоступен? set -x не печатает информацию о стеке для автозаполнения bash Как установить команду `service` в Stable Debian? `which`, но все Как обеспечить FTPeS использование безопасного соединения? Не удалось выполнить калибровку сенсорного экрана Samsung Galaxy Book с помощью Xinput Как использовать сортировку gnu для сортировки строк с разделителем поля, представленным только на некоторых строках Дублировать записи PATH – не знаю, где они установлены из

Regex заменить второй шаблон, сопоставив с в Geany?

Я хотел бы заменить 123 456 789 на q23 r56 u89 используя регулярное выражение Geany . Пока что я могу сделать это с помощью нескольких шаблонов поиска и замены, например:

 ... Find: `(\D|^)4` Replace: `\1r` Find: `(\D|^)5` Replace: `\1t` ... 

Я хочу объединить эти 10 операторов в одно, используя отображение \2 по правилу [1234567890] -> [qwertyuiop] .

Как я могу сделать это в Geany?

Я не думаю, что это можно сделать с помощью одного регулярного выражения, поскольку нет способа заглянуть внутрь захваченной группы. Но Perl может сделать это в одной строке, так как он позволяет выполнять транслитерацию в подстановке:

 $ echo 123 456 789 | perl -pe 's/\b[0-9]/ $& =~ tr,1-90,qwertyuiop,r /ge' q23 r56 u89 

( s/pattern/replacement/ replace s/pattern/replacement/ является оператором поиска + замены в стиле sed , \b соответствует границе слова. Символ e после финального символа / делает замену выражением, а fragment там использует tr/// для транслитерации $& переменная, содержащая сопоставляемый текст. В качестве разделителей для tr могут использоваться произвольные символы, поэтому запятая используется, чтобы не конфликтовать с внешним оператором.)

Конечно, это не очень помогает, если вы хотите сделать это в Geany.