0

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

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>.*)$";
4

2 回答 2

1

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

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

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

它适用于multiline模式...

于 2012-09-06T15:45:03.437 回答
0

不知道你的问题出在哪里。这对我有用:

\s*(?<Key>[^\s]+)\s*(?<Value>.*)
于 2012-09-06T15:16:09.770 回答