【解決方法】or 操作による正規表現の作成


以下のパターンならファイルを読み込みたい。

ここは file1.text

Abc,192.168.99.4
Eyo,192.168.8.16,3370
Opa,4447
Ctc,192.168.66.2,5507

これは、シングルで機能している私のコードです。 Var3 は値を表示していません。 また 2 ~ 3 つの値の正規表現間の演算。

 if(EOF == fscanf(mf," %[^,],%s,%s | %[^,], %[^,] %[^,],%s,%s,%s", var1,var2,var3)){
   printf("var2=%s\n",var2);
   printf(" var1=%s\n",var1);
   printf(" var3=%s\n",var3);
}

コードは出力を生成しています

Var2=Abc

Var1=192.168.99.4

Var3=

Var2=Eyo

Var1=192.168.8.16,3370

Var3=

Var2=Opa

Var1=4447

Var3=

Var2=Ctc

Var1=192.168.66.2,5507

Var3=

私が試したこと:

3 つの値に区切られた 2 つのカンマに分割する方法は?

解決策 1

fscanf[^] は正規表現をサポートしていません – はるかに制限された形式の文字クラスをサポートしています。
これらの文字クラスには、OR 演算子は含まれません。

C は正規表現よりも数十年古いことを思い出してください。行を自分で処理する必要があります。後で正規表現ライブラリを明示的に追加し、ファイルから読み取った行をそのように処理しない限り、必要に応じて自動化する方法はありません。 Google はあなたの環境に合うものを見つけるのを手伝ってくれますが、私はそれを使おうとしたことがないので、具体的なことはお勧めできません。

コメント

タイトルとURLをコピーしました