Domanda

cioè:.

echo H#97llo | MagicPerlCommand

Stdout:

Hallo

dove MagicPerlCommand è qualcosa di simile

perl -pnle "s/#(\d+)/chr(\1)/ge"

(ma non funziona).

È stato utile?

Soluzione

Cambia \ 1 in $ 1 nel tuo MagicPerlCommand. Lo stile di backback \ digit non funziona quando viene valutata l'espressione di sostituzione (ovvero s /// e ).

Ha funzionato per me su Windows e Linux.

Altri suggerimenti

Come da j_random_hacker , devi usare $ 1 anziché \ 1 .

Questo perché usare il modificatore ' / e ' nella regex significa che la metà della mano destra è solo un'altra espressione Perl normale, e non una sostituzione regex. Dato che è Perl, devi usare la sintassi di Perl come riferimento per la parentesi, e non la solita sintassi della regex.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top