0

特定の形式のテキスト ファイルがあります。

!c_xyz|crby=112|crdate=12jun11|mdby=112|mddate=12jun11|Desc=xyz
asdasda........................................................
asddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
!c_abc|crby=112|crdate=12jun11|mdby=112|mddate=12jun11|Desc=xyz...

検索と置換 - Visual Studio を使用してこのファイルを再フォーマットするには、正規表現が必要です。Desc フィールドの値が次の行にオーバーフローしました。それらを実際の行に戻す必要があります。最終文字列は次のようになります

    !c_xyz|crby=112|crdate=12jun11|mdby=112|mddate=12jun11|Desc=xyzsdasda.........asdddddd..
    !c_abc|crby=112|crdate=12jun11|mdby=112|mddate=12jun11|Desc=xyz...

「desc=」の RE が必要で、その後に次まで何かが続きます。シンボル

4

2 に答える 2

1

@ X3074861X のコメントで述べたように、Notepad++ を使用できます。

入力:

!c_xyz|crby=112|crdate=12jun11|mdby=112|mddate=12jun11|Desc=xyz
asdasda........................................................
asddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
!c_abc|crby=112|crdate=12jun11|mdby=112|mddate=12jun11|Desc=xyz...

検索と置換Regular expressionの場合、次のオプションでモードを選択します。

Find what:\r\n[^!]

Replace with空白のままにします。

出力:

!c_xyz|crby=112|crdate=12jun11|mdby=112|mddate=12jun11|Desc=xyzsdasda........................................................sddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
!c_abc|crby=112|crdate=12jun11|mdby=112|mddate=12jun11|Desc=xyz...

スクリーンショット:

ここに画像の説明を入力

于 2013-04-18T16:38:11.787 に答える
1

find Desc=([^\|\r\n]+)[\r\n](([^!\r\n][^\r\n]+[\r\n])*)、 replace with Desc=\1\2、すべての行が で始まるまで繰り返します (何も見つからないはずの検索式として!これを使用してテストできます)。^[^!]

または、 find[\r\n]+を空の文字列に置き換えます。その後、見つけて!、に置き換え\r\n!ます。この提案には 2 つの欠点があります。一時的に非常に長い行が生成されますが、エディター (特に vs) は問題がある場合とない場合があり、!誤って含まれている説明を処理します。

補遺:あなたの入力はDescセクションまで固定形式のようです。そうである場合は、代替 #2 のステップ 1 を適用し、その後に / を使用して検索/置換を実行でき(!.{53}\|Desc=)ます[\r\n]\1

于 2013-04-18T16:39:02.080 に答える