正则表达式 - 在值之前或之后查找值

时间:2012-02-02 21:06:26

标签: c# regex

我的值为[A]。[B]。[C]。[D]和[X]。[Y]我想写正则表达式,其中一个会给出我在[]之前的值(在上面的例子C中)和一个在[X]之后返回值的正则表达式(对于上面的例子Y)。

我正在使用C#,。net4。

4 个答案:

答案 0 :(得分:1)

这应该有效:

(?<=\[)\w(?=\]\.\[D\])

(?<=\[X\]\.\[)\w(?=\])

实施例

    [Test]
    public void TestC()
    {
        string input = "[A].[B].[C].[D].[X].[Y]";
        string actual = Regex.Match(input, @"(?<=\[)\w(?=\]\.\[D\])").Value;
        string expected = "C";
        Assert.AreEqual(expected, actual);
    }

    [Test]
    public void TestY()
    {
        string input = "[A].[B].[C].[D].[X].[Y]";
        string actual = Regex.Match(input, @"(?<=\[X\]\.\[)\w(?=\])").Value;
        string expected = "Y";
        Assert.AreEqual(expected, actual);
    }

答案 1 :(得分:0)

\[(.*?)\]\.\[D\] - 在D.获得第1组之前 \[X\]\.\[(.*?)\] - 在X之后。获取第1组

答案 2 :(得分:0)

\[([^\]])\]\.\[C\]

\[X\]\.\[([^\]])\]

consider reading up on regex

答案 3 :(得分:0)

首先:\ [([^ \]])*)\] \。\ [D \]

第二:\ [X \] \。\ [(([^ \]] *)\]