Regular-Expression

正則表達式通過映射替換第二個模式0−90−90-9到q-pq−pq-p在蓋尼?

  • October 1, 2018

我想123 456 789Geanyq23 r56 u89正則表達式代替。到目前為止,我可以使用多個查找和替換模式來做到這一點,如下所示:

...      
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/是一個sed-style find+replace 操作符,\b匹配一個單詞的邊框。the efinal/使替換成為一個表達式,其中的片段tr///用於音譯$&,包含匹配文本的變數。任意字元可以用作分隔符tr,所以逗號用於不與外部運算符衝突。)

當然,如果您想在 Geany 中執行此操作,這並沒有太大幫助。

引用自:https://unix.stackexchange.com/questions/457801