我的值为[A]。[B]。[C]。[D]和[X]。[Y]我想写正则表达式,其中一个会给出我在[]之前的值(在上面的例子C中)和一个在[X]之后返回值的正则表达式(对于上面的例子Y)。
我正在使用C#,。net4。
答案 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)
答案 3 :(得分:0)
首先:\ [([^ \]])*)\] \。\ [D \]
第二:\ [X \] \。\ [(([^ \]] *)\]