0x0D、0x0A文字を見つけて置き換える正規表現

0x0D、0x0A文字を見つけて置き換える正規表現

0x0A0x0D行の途中に改行文字()を含むデータベースダンプのテキストファイルがあります。この文字をカンマに置き換えたいのですが、この文字が実際の改行文字であるため、これはできません。する改行したい!

しかし、維持したい改行シーケンスが空白文字()で囲まれていることがわかったので、正規表現を使用して、先行または末尾の空白なしですべての0x20シーケンスを探して置き換えるつもりです。0x0A0x0D

どうすればいいですか?

ベストアンサー1

もちろん、空白文字の正規表現はです\s。ただし、空白以外の文字が必要なので、\S!を使用できます。したがって、置き換えたい正規表現はです\S\n\r\S

編集する:

#!/usr/bin/perl
use strict; use warnings;
my $pattern = "xxxxxxxxxxxxxxxxxxxy\n\ryxxxxxxxxxxxxxxxxxxx \n\r xxxxxxxxxxxxxxxxxxxy\n\ryxxxxxxxxxxxxxxxxxxx";
$pattern =~ s/(\S)(\n\r)(\S)/$1$3/g;
print "$pattern\n";
exit;

結果:

xxxxxxxxxxxxxxxxxxxyyxxxxxxxxxxxxxxxxxxx 

 xxxxxxxxxxxxxxxxxxxyyxxxxxxxxxxxxxxxxxxx

$1$3一致する文字を保持できるように置き換える正規表現を変更しました\S

おすすめ記事