【问题标题】:How to get text contained between brackets [duplicate]如何获取括号之间的文本[重复]
【发布时间】:2015-01-05 05:03:04
【问题描述】:

我的控制台应用程序中有 3 个不同的字符串值:

学生 A (AA.1)

学生(1) B (AA.2)

学生乙

想从 backet 中获得价值:

AA.1、AA.2

谢谢。我使用了 split,但是会遇到错误,因为 Student B 没有任何括号并且 Student(1) B (AA.2) 有 2 个括号。

当前代码

 char[] targetExpression = new char[] { '(', ')' };
 string title = "Student A (AA.1)";
 Console.WriteLine(title.Split(targetExpression)[1]);

【问题讨论】:

  • 在空白处分割并检查第一个字符是否为 '('

标签: c# regex


【解决方案1】:

寻找这样的东西?

/.*\(([^)]*)\)$/

【讨论】:

    【解决方案2】:

    获取字符内字符串的函数

    string GetStirngWithiin(string SourceString, char startChar, char endChar,int StartFrom=0)
    {
        SourceString = SourceString.Substring(StartFrom);
        int startFrom=SourceString.IndexOf(startChar);
        int EndAt=SourceString.IndexOf(endChar);
        if ((startFrom > -1) && (EndAt >-1))
        {
           int SubStrLength = EndAt - startFrom - 1;
            if (SubStrLength > 0)
            {
              string Result = SourceString.Substring(startFrom + 1, SubStrLength);
              return Result;
             }
    
          }
       return "";
    }
    

    你可以使用函数调用

     string str1 = GetStirngWithiin("Student A (AA.1)",'(',')');
     string str2 = GetStirngWithiin("Student(1) B (AA.2))", '(', ')',10);
    

    与学生 B 一起使用将返回一个空白字符串。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-20
      • 2010-09-27
      • 1970-01-01
      • 1970-01-01
      • 2013-11-10
      相关资源
      最近更新 更多