2

我需要从遵循某种格式布局的文本行中解析一些信息。这是文本文件外观的示例:

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

归根结底,我想要的是,在解析了上述两行之后,我将拥有我的 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] 是第二个字母(例如 C)
  • Groups[4] 是第二个选项(例如,这是选项 c)
于 2012-05-23T16:13:04.650 回答
0

试一试:

[A-Z]\..*((\s){2,}|\t)
于 2012-05-23T16:10:44.763 回答
0
[a-zA-Z][.]\s[\w\s]*\s

将为您提供类似的结果A. This is option a,然后您可以对其进行解析以获取选项字母和结果文本。您还可能希望从以下行中删除尾随空格.Trim()

于 2012-05-23T16:16:04.050 回答