1

各CSV行を解析するために正規表現を作成する必要があります。たとえば、正規表現は、一重引用符ではなく、偶数の二重引用符( ")を含む二重引用符で囲まれた文字列に一致します。

たとえば、CSV区切り文字はタブ\tです。私はこのような行を持っています:

"first column ""end"\tsecond column\t"third \nNewLine\rcolumn\tend"

正規表現を使用すると、次のように3つの列を抽出できます。

first column ""end
second column
third \nNewLine\rcolumn\tend

最初の列には2つの二重引用符がありますが、偶数の二重引用符を使用できることに注意してください。

\nと\rと同様に、3番目の列には\tがあることに注意してください。

正規表現を簡単に記述できる場合は、1列目と3列目を引用できます。

何か案が?

4

1 に答える 1

2

偶数の引用符が続く場合にのみ、タブを分割するのはどうですか?

splitArray = Regex.Split(subject, 
    @"\t        # Match a tab
    (?=         # if the following regex matches after it:
     (?:        # Match...
      [^""]*""  # Any number of non-quotes, followed by a quote
      [^""]*""  # ditto, to ensure an even number of quotes
     )*         # Repeat as many times as needed
     [^""]*     # Then match any remaining non-quote characters
     $          # until the end of the string.
    )           # End of lookahead assertion", 
    RegexOptions.IgnorePatternWhitespace);
于 2013-03-17T18:25:39.773 に答える