123 456 789
다음을 사용하여 q23 r56 u89
교체 하고 싶습니다 .제니정규식. 지금까지는 다음과 같은 여러 찾기 및 바꾸기 패턴을 사용하여 이 작업을 수행할 수 있습니다.
...
Find: `(\D|^)4`
Replace: `\1r`
Find: `(\D|^)5`
Replace: `\1t`
...
\2
규칙 매핑을 통해 이 10개의 명령문을 하나로 병합 하고 싶습니다 [1234567890] -> [qwertyuiop]
.
Geany에서 어떻게 할 수 있나요?
답변1
캡처 그룹 내부를 볼 수 있는 방법이 없기 때문에 단일 정규식으로는 이 작업을 수행할 수 없다고 생각합니다. 그러나 Perl은 음역이 대체적으로 실행될 수 있도록 허용하기 때문에 이 작업을 한 줄로 수행할 수 있습니다.
$ echo 123 456 789 | perl -pe 's/\b[0-9]/ $& =~ tr,1-90,qwertyuiop,r /ge'
q23 r56 u89
( 는 단어 테두리와 일치하는 - 스타일 찾기+바꾸기 연산자 s/pattern/replacement/
입니다 . 마지막 연산자는 대체를 표현식으로 만들고 그 일부는 음역 , 즉 일치하는 텍스트를 포함하는 변수에 사용됩니다. 모든 문자를 사용할 수 있으므로 사용 쉼표는 외부 연산자와 충돌하지 않음을 나타냅니다.sed
\b
e
/
tr///
$&
tr
물론, Geany 내에서 이 작업을 수행하려는 경우에는 별로 도움이 되지 않습니다.