在为此方案创建正则表达式时需要帮助

时间:2012-05-23 15:58:46

标签: c# regex

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

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”之前的一些空格分割这一行。与上例中的情况一样。

非常感谢任何投入。

3 个答案:

答案 0 :(得分:1)

以下正则表达式应该这样做,

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

每行的位置

  • 群组[0]是整行
  • 组[1]是第一个字母(例如A)
  • 第[2]组是第一个选项(例如,这是选项a)
  • 组[3]是第二个字母(例如C)
  • 组[4]是第二个选项(例如,这是选项c)

答案 1 :(得分:0)

给这个人一个旋转:

[A-Z]\..*((\s){2,}|\t)

答案 2 :(得分:0)

[a-zA-Z][.]\s[\w\s]*\s

将为您提供A. This is option a之类的结果,然后您可以解析它以获取选项字母和结果文本。您还可能希望从.Trim()

的行中删除尾随空格