Regexp 매치를 대체하고 Perl에서 대체물을 매핑하려면 어떻게해야합니까?
-
05-07-2019 - |
문제
즉:
echo H#97llo | MagicPerlCommand
stdout :
Hallo
MagicPerlCommand는 같은 것입니다
perl -pnle "s/#(\d+)/chr(\1)/ge"
(그러나 그것은 작동하지 않습니다).
해결책
변화 \1
에게 $1
MagicPerlCommand에서. 그만큼 \digit
대체 표현식이 평가 될 때 Backreference Style이 작동하지 않습니다 (즉 s///e
).
그것은 Windows와 Linux에서 나를 위해 일했습니다.
다른 팁
에 따라 j_random_hacker
대답, 당신은 사용해야합니다 $1
보다는 \1
.
'사용하기 때문입니다./e
'정규식의 수정자는 오른손 절반이 또 다른 정상적인 Perl 표현이며, 정규식 대체가 아니라는 것을 의미합니다. Perl이므로 일반적인 Regex 구문이 아니라 Bracket Reference에 Perl의 구문을 사용해야합니다.
제휴하지 않습니다 StackOverflow