正規表現の一致を置換し、Perlで置換をマッピングするにはどうすればよいですか?
-
05-07-2019 - |
質問
つまり:
echo H#97llo | MagicPerlCommand
標準:
Hallo
MagicPerlCommandは次のようなものでした
perl -pnle "s/#(\d+)/chr(\1)/ge"
(ただし、機能しません)。
解決
MagicPerlCommandで \ 1
を $ 1
に変更します。 \ digit
後方参照スタイルは、置換式が評価されると機能しません(つまり、 s /// e
)。
それはWindowsとLinuxでうまくいきました。
他のヒント
j_random_hacker
の回答に従って、 $ 1
\ 1
ではなく。
これは、正規表現に ' / e
'修飾子を使用すると、右半分が正規表現の置換ではなく、単なる別の通常のPerl式であることを意味するためです。 Perlなので、通常の正規表現構文ではなく、Perlの構文をブラケット参照に使用する必要があります。
所属していません StackOverflow