2

perl で置換メソッドを使用する必要があります。しかし問題は、置換される文字列がかなり複雑で、特殊文字が含まれていることです。

検索する文字列:

K6D2wlawNtxOMrTOiEwnz12Y1qvn

置換する文字列:

TO_DATE('03/31/2013 02:00:00', 'MM/DD/YYYY HH24:MI:SS')

検索する文字列はかなり単純ですが、置換する文字列はかなり複雑で、通常の置換は機能しません。

perl -p -i -e "s/$search/$replace/g" file

これらの正規表現ルールをオーバーライドして、上記の複雑な文字列を単純に置き換えることができる perl の他の引用方法はありますか?

文字列を編集して置き換えることはできないことを強調しなければなりません。文字列は他のソースからのものであり、SQL の他のさまざまな関数である可能性があるため、自分の管理下にないためです。

4

2 に答える 2

4

s|vsなど、別の置換区切り文字を使用します。s/

perl -p -i -e "s|K6D2wlawNtxOMrTOiEwnz12Y1qvn|TO_DATE('03/31/2013 02:00:00', 'MM/DD/YYYY HH24:MI:SS')|" file
于 2013-06-04T10:17:11.363 に答える
3

通常の文字列として扱いたい場合は、quotemetaを呼び出して特殊文字をエスケープするか、同等のシーケンスを使用する必要があります。

perl -p -i -e "s/\Q$search\E/\Q$replace\E/g" file
于 2013-06-04T14:50:13.183 に答える