![Geany에서 [0-9]를 [qp]에 매핑하여 두 번째 패턴을 바꾸는 정규식?](https://linux55.com/image/137340/Geany%EC%97%90%EC%84%9C%20%5B0-9%5D%EB%A5%BC%20%5Bqp%5D%EC%97%90%20%EB%A7%A4%ED%95%91%ED%95%98%EC%97%AC%20%EB%91%90%20%EB%B2%88%EC%A7%B8%20%ED%8C%A8%ED%84%B4%EC%9D%84%20%EB%B0%94%EA%BE%B8%EB%8A%94%20%EC%A0%95%EA%B7%9C%EC%8B%9D%3F.png)
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 내에서 이 작업을 수행하려는 경우에는 별로 도움이 되지 않습니다.