3

解析する多数のフラット ファイル フィードを取得します。フィードの 1 つに、二重引用符が頻繁に含まれるコメント フィールドがあります。

ファイルがパイプで区切られた二重引用符で修飾されたファイルであるという事実を除いて、これは大したことではありません!!

以下に、取得する文字列の概要を示します。

0|0.9|""|"M"|"X"|"0.2"|"This is the string with the "double" double quotes"

これが私が持っていたい弦です。

0|0.9|""|"M"|"X"|"0.2"|"This is the string with the double double quotes"

私の考えは、単純な正規表現を使用することでした "(?!\|)(?<!\|)"

ただし、これは空のフィールドを構成する 2 つの連続する二重引用符と一致します。

私も試してみました

\|*"\|*

これは、パイプに隣接していない二重引用符と一致すると思いました。

しかし、これはすべての二重引用符をキャプチャします。

これは簡単なはずですが、行き詰まっています。

どんな助けでも大歓迎です。

4

1 に答える 1

2

これは一般的なケースでは明らかに不可能です — コメントがYou need to use a pipe ("|") rather than < and >? — ただし、99% の場合は、次のように記述できます。

(?<!\|)"(?!\|)

パイプが前後にない二重引用符に一致するか、さらに良いこと:

(?<!\||^)"(?!\||$)

また、文字列のどちらの端にも隣接しないようにする必要があります。

于 2012-10-31T18:16:19.610 に答える