2

特定のフォーマットレイアウトに従うテキストの行からいくつかの情報を解析する必要があります。これは、テキストファイルがどのように表示されるかの例です。

A. This is option a              C. This is option c
B. This is option b              D. This is option d

結局のところ、私が欲しいのは、上記の2行を解析した後、C#コードに次のようになることです。

string OptionA = "This is option a";
string OptionB = "This is option b";
string OptionC = "This is option c";
string OptionD = "This is option d";

A.とC.(またはB.とD.)の間のスペースは、タブ(\ t)または乱数の空白のいずれかです。コードをステップスルーして行を読み取ると、次のようになります。

"A.\tThis is option a\tC. This is option c"

またはそれはこのように見えるかもしれません

"A.\tThis is option a        C. This is option c"

「\t」または「C」の前の空白の数に基づいてこの行を分割するのに、おそらく助けが必要です。上記の例の場合のように。

任意の入力をいただければ幸いです。

4

3 に答える 3

1

次の正規表現はそれを行う必要があります、

@"^([A-Z])[.](.+[^\s])\s+([A-Z])[.](.+)$"

各行の場所

  • Groups[0]は行全体です
  • Groups [1]は最初の文字です(例:A)
  • Groups [2]が最初のオプションです(例:これはオプションaです)
  • Groups [3]は2番目の文字です(例:C)
  • Groups [4]は2番目のオプションです(例:これはオプションcです)
于 2012-05-23T16:13:04.650 に答える
0
[a-zA-Z][.]\s[\w\s]*\s

A. This is option aオプション文字と結果のテキストを取得するために解析できるような結果が得られます。また、行から末尾の空白を削除することもできます.Trim()

于 2012-05-23T16:16:04.050 に答える
0

これを試してみてください:

[A-Z]\..*((\s){2,}|\t)
于 2012-05-23T16:10:44.763 に答える