1

情報を含むユーザーのリストを含むCSVファイル(iWork Numbersからエクスポートされたデータ)があります。私がやりたいのは、すべての行で「最終ログイン」を受け入れる;;;;;;;;;に置き換えることです。;

そうしてファイルをNumbersに再度インポートすることにより、データは(うまくいけば)次のような行に分割されます。

User 1 | Points: 1 | Registered: 2012-01-01 | Last login 2012-02-02
User 2 | Points: 2 | Registered: 2012-01-01 | Last login 2012-02-02

CSVファイルの外観:

;User1;;;;;;;;;
;Points: 1;;;;;;;;;
;Registered: 2012-01-01;;;;;;;;;
;Last login: 2012-02-02;;;;;;;;;
;User2;;;;;;;;;
;Points: 2;;;;;;;;;
;Registered: 2012-01-01;;;;;;;;;
;Last login: 2012-02-02;;;;;;;;;

だから私の質問は、検索と置換フィールドにどの正規表現コードを入力する必要があるかということです。

前もって感謝します!

4

1 に答える 1

2

動作中の正規表現を参照してください:

Find   : ^(;(?!Last).*)(;{9})
Replace: $1;

出力は次のようになります。

;User1;
;Points: 1;
;Registered: 2012-01-01;
;Last login: 2012-02-02;;;;;;;;;
;User2;
;Points: 2;
;Registered: 2012-01-01;
;Last login: 2012-02-02;;;;;;;;;

説明

探す:

^                 # Match start of the line
(                 # Start of the 1st capture group
    ;(?!Last)     # Match a semicolon (;), only if not followed by 'Last' word.
    .*            # Match everything
)                 # End of the 1st capture group
(                 # Start of the 2nd capture group
    ;{9}          # Match exactly 9 semicolons
)                 # End of the 2nd capture group

交換:

$1;               # Leave 1st capture group as is and append a semicolon.
于 2012-08-24T09:06:26.777 に答える