2

私は正規表現を使用するのが非常に初心者であり、まだそれを理解しようとしているので、以下の私の質問に矛盾がある場合はご容赦ください.

以下のすべては、VB.NETで正規表現を使用して行いたいと思います。

RegExinを使用しVB.NETて、CSV 形式のファイルと類似点を共有するフラット ファイルから区切られたデータを抽出しようとしていますが、コンマで区切られた二重引用符の間のデータのみを保持します。

典型的な行の例を次に示します。

[java] Customer [customerId="1000", customerName="Acme Service, Inc"]
[java] Customer [customerId="2000", customerName="Widget Factory, LLC"]

私が探している出力は次のとおりです。

"1000","Acme Service, Inc"
"2000","Widget Factory, LLC"

編集

この式を使用すると"([""'])(?:(?=(\\?))\2.)*?\1"、 のみを抽出できましたが、同じ行で"1000"最初とその後の二重引用符で囲まれ""た値を取得するのに問題があります。

また、これは 2 つの値に限定されるものではなく、同じ行に二重引用符で囲まれた不確定な値のセットである可能性があります。

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

4

2 に答える 2

2

問題は、繰り返しキャプチャ グループがある場合、最後のインスタンスのみがキャプチャされることです。正規表現から無数の一致を取得する唯一の方法は、正規表現をグローバルに適用することです。あなたが持っているもののためにファイル全体でこれを行う最も簡単な方法は、このフィドル(".*?")に示されているように

于 2013-08-09T20:29:29.517 に答える
0

そのために使用しているコードは何ですか?次の式が機能するかどうか疑問に思っています: "(?[""]).*?\k"

于 2013-08-09T20:20:50.437 に答える