正则表达式:可选 - 忽略双引号

时间:2012-09-06 14:51:21

标签: c# regex

您好我有一个关于根据以下正则表达式匹配组的问题

static string partPattern = @"^(?<Key>\w+)\s*(?<Value>.*)$";

示例数据如下:

   TEST_REPLICATE
    {
        REPLICATE_ID            1986
        ASSAY_NUMBER            877
        ASSAY_VERSION           4
        ASSAY_STATUS            "Research"
            }

我能够正确检索值,如果值为NULL,它也能正常工作。我想要做的是还检索一个值,例如最后一个双引号的模块。我不确定我是否正确地做了,这对于上述场景是否是正确的正则表达式,我在w之前添加了引号。请更正,谢谢

  static string partPattern = @"^(?<Key>\"w+)\s*(?<Value>.*)$";

2 个答案:

答案 0 :(得分:1)

你的正则表达式不正确。至少你提供的输入..

如果我理解了你的问题,这就是你需要的正则表达式。

^\s*(?<Key>\w+)\s*\"?(?<Value>.*?)\"?$

它适用于multiline模式......

答案 1 :(得分:0)

不确定问题出在哪里。这对我有用:

\s*(?<Key>[^\s]+)\s*(?<Value>.*)