0

ワイルドカードを使用して以下を定義する方法はありますか:

"\"コンマ文字の前後に a が含まれていない場合、コンマの前後にa を付けたいと思い"\""ます。

否定の仕方がちょっとわかりません。

編集サンプルデータ:

"col1,col2,col3" 

なるべき

"\"col1\",\"col2\",\"col3\""

ここで、「\」は単に引用文字列を意味します

4

5 に答える 5

0

正規表現または単純な置換を使用します。

string s = "col1,col2\",\"col3";
// replace all existing quotes and replace all commas with escaped characters again
string r = s.Replace('\"','').Replace(",","\",\"");
// r = "col1\",\"col2\",\"col3"

ただし、これはサンプルデータのようにはなりません。

"col1,col2,col3" should become "col1\",\"col2\",\"col3\""

これはあなたのルールに従っていません(末尾を見てください\"!)。たぶん、すべての列をラップしたいので\"、最初と最後にを追加することもできます。(セパレーターは常にスペースを含まず、ただ,であると仮定します)

于 2012-04-13T09:44:17.327 に答える
0

次のものに一致するものをすべて置き換えます^(\\\"),^(\\\")\",\"

これは、バックスラッシュ、引用符、コンマ、バックスラッシュ以外の引用符が続く以外のことを意味します。

于 2012-04-13T09:44:27.193 に答える
0

「ネガティブ ルック ビハインド」アサーションを使用します。

(?<!\\),

サンプルの入力/出力がなければ、より良い答えは得られません。

于 2012-04-13T09:48:40.920 に答える
0

Try (?<!\"),(?!\")、これはゼロ幅アサーションと呼ばれます

今は忙しいので後で説明します、ごめんなさい。

于 2012-04-13T09:49:14.663 に答える
0

私はこのスレッドが少し古いことを知っていますが、新しい訪問者のためにこれも行うことができます:

string sample = "col1,col2,col3" 
string result = sample.Replace("""","");
result = "\"" + result.replace(",","\",\"") + "\""

それが役に立てば幸い!

于 2013-05-31T05:23:08.363 に答える