各种组合的正则表达式

时间:2015-01-15 22:14:18

标签: c# regex

这是我正在寻找的模式 [stringData1 | stringData2 | OnlyNumericData1] stringData1的最大大小限制为10 stringData2的最大大小限制为50 stringData1,stringData2和OnlyNumericData1 中至少应包含一个字符。

案例#1:("这是测试主题行[testData1 | CS-SPL-GD-2014-01254 | 678]和[[test-1213-778]& #34); //返回:[testData1 | CS-SPL-GD-2014-01254 | 678]

案例#2:"这是测试主题行[testData1 | 1tes2345 | 678]和[resrtest-1213667-77448]"); //返回:[testData1 | 1tes2345 | 678]

案例#3 :("这是测试主题行[test Data1 | -12 | iiiii | 345-678]和[test | 124413tryrtytry | 77218]" ); //返回:[test | 124413tryrtytry | 77218]

案例#4 :("这是测试主题行[Hello Test | 1w2345 | 678]和[Hellotest | 122 2213 | 72278]"); //返回:无法返回。由于数据中的空白

案例#5 :("这是测试主题行[33 | 1d-d-dff = gg2345 |测试]和[teddddst | 1 | 21433} | 7788888]& #34;); //返回:返回[33 | 1d-d-dff = gg2345 | test]第一次出现模式匹配

到目前为止我的尝试。

        var result = Regex.Match(subjectLine, @"\[\w{1,10}|\w{1,50}|[\d]+\]");
        if (result.Success)
        {

        }
        else
        {

        }

为此条件寻找C#正则表达式。


1 个答案:

答案 0 :(得分:0)

你的正则表达式存在两个问题:

  1. 您必须转义竖线字符|
  2. \w-=不符。您可能想要使用\S
  3. 结果:

    \[\S{1,10}\|\S{1,50}\|\d+\]