Regexp 매치를 대체하고 Perl에서 대체물을 매핑하려면 어떻게해야합니까?

StackOverflow https://stackoverflow.com/questions/420410

  •  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의 구문을 사용해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top