如何获得破折号和左括号之间的所有字符?

时间:2013-11-14 16:26:22

标签: c# asp.net regex

如何使用C#获取 DASH BRACKET 之间的所有字符?

字符串x =“PU - XX (AYT)”

我想 XX 。 短划线[ - ]和方括号[])是常量。

5 个答案:

答案 0 :(得分:2)

您可以使用string.IndexOf(string)string.substring(start,length)的组合,或使用string.split(char)方法。

另一种方法是使用正则表达式。但作为初学者,我会建议字符串 - 函数,因为它们可以帮助您了解正在发生的事情。对于初学者来说,RegExes并不是很容易理解。

您应该在msdn中找到对这些方法的深入解释:

的IndexOf: http://msdn.microsoft.com/de-de/library/k8b1470s(v=vs.110).aspx

SUBSTRING: http://msdn.microsoft.com/de-de/library/aka44szs(v=vs.110).aspx

分割: http://msdn.microsoft.com/de-de/library/b873y76a(v=vs.110).aspx

答案 1 :(得分:1)

正则表达式:"- (.+)\("

使用(group)将其定义为正则表达式字符串中的一个组,并确保通过使用(来逃避您匹配的\(.+则表示一个或多个任何内容。

答案 2 :(得分:1)

您可以使用Substring()函数获取String的必需部分。

            string x = "PU - XX (AYT)";
            int end = x.IndexOf("(");
            int begin = x.IndexOf("-");    
            string requiredPart=x.Substring(begin+1, (end - begin)-1);

变量requiredPart包含-(

之间的字符串

答案 3 :(得分:1)

string str = "PU - XX (AYT)";
int s = str.IndexOf('-');    
if(s < 0)                                             //make sure string contains a dash
    return "";
else
{
    int e = str.IndexOf('(', s + 1)                   //start looking for bracket 
                                                      //from this point forward

    return (e >= 0? str.Substring(s + 1, e - s) : ""); //ensure it contains a bracket too
}

答案 4 :(得分:1)

在这里,这个正则表达式只能找到字符串的中心部分,“ - ”和“(”之间的任何内容都会自动排除空格。

(?<=- ).*(?= \()
相关问题