ワイルドカードを使用して以下を定義する方法はありますか:
"\"
コンマ文字の前後に a が含まれていない場合、コンマの前後にa を付けたいと思い"\""
ます。
否定の仕方がちょっとわかりません。
編集サンプルデータ:
"col1,col2,col3"
なるべき
"\"col1\",\"col2\",\"col3\""
ここで、「\」は単に引用文字列を意味します
正規表現または単純な置換を使用します。
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\""
これはあなたのルールに従っていません(末尾を見てください\"
!)。たぶん、すべての列をラップしたいので\"
、最初と最後にを追加することもできます。(セパレーターは常にスペースを含まず、ただ,
であると仮定します)
次のものに一致するものをすべて置き換えます^(\\\"),^(\\\")
。\",\"
これは、バックスラッシュ、引用符、コンマ、バックスラッシュ以外の引用符が続く以外のことを意味します。
「ネガティブ ルック ビハインド」アサーションを使用します。
(?<!\\),
サンプルの入力/出力がなければ、より良い答えは得られません。
Try (?<!\"),(?!\")
、これはゼロ幅アサーションと呼ばれます
今は忙しいので後で説明します、ごめんなさい。
私はこのスレッドが少し古いことを知っていますが、新しい訪問者のためにこれも行うことができます:
string sample = "col1,col2,col3"
string result = sample.Replace("""","");
result = "\"" + result.replace(",","\",\"") + "\""
それが役に立てば幸い!