4

CSV ファイルの数字の間に二重引用符があるパターンがあります。[0-9]\"[0-9] でパターンを検索できますが、二重引用符を削除しながら値を保持するにはどうすればよいですか。CSV 形式は次のようになります。

"1234"5678","Text1","Text2"
"987654321","Text3","text4"
"7812891"3","Text5","Text6"

お気づきかもしれませんが、削除したいいくつかの数字の間に二重引用符があります。

次の方法を試しましたが、これは正しくありません。

:%s/[0-9]\"[0-9]/[0-9][0-9]/g

すべての検索パターンでコマンドを実行することは可能ですか?おそらく1文字進めて削除します。「lx」を検索と置換に埋め込むにはどうすればよいですか。

4

4 に答える 4

8

グループをキャプチャする必要があります。試す:

:%s/\(\d\)"\(\d\)/\1\2/g

[数字は で表すこともできます\d。]

于 2013-07-26T07:21:15.943 に答える
4

この質問はすでに回答されていることは知っていますが、別のアプローチを次に示します。

:%s/\d\zs"\ze\d

説明:

%s   バッファ全体を置換
\d   する 数字を検索する
\zs ここで一致の開始を設定する ここ
"     で二重引用符を検索する
\ze ここで一致の終わりを設定
\d   する 数字を検索する

これにより、置換コマンドは、数字で囲まれた二重引用符のみに一致します。
置換文字列を省略すると、一致が削除されるだけです。

于 2013-07-29T08:24:01.213 に答える
1

少し素朴な解決策:

%s/^"/BEGINNING OF LINE QUOTE MARK/g
%s/\",\"/quote comma quote/g
%s/\"$/quota end of line/g
%s/\"//g
%s/quota end of line/"/g
%s/quote comma quote/","/g
%s/BEGINNING OF LINE QUOTE MARK/"/g

マクロは非常に簡単に作成でき、必要に応じて何度でも呼び出すことができます。

于 2013-07-26T07:25:48.220 に答える
1

正規表現で使用するには境界が必要です。

これを試して:

:%s/\([0-9]\)"\([0-9]\)/\1\2/g
于 2013-07-26T07:21:30.113 に答える