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

C# 如何获取破折号和左括号之间的所有字符?,c#,asp.net,regex,C#,Asp.net,Regex,如何使用C#获取破折号和括号之间的所有字符 字符串x=“PU-XX(AYT)” 我想得到XX。 破折号[-]和括号[(]是常量。您可以通过组合字符串.IndexOf(字符串)和字符串.substring(开始,长度)或使用字符串.split(char)-方法来获得它们 另一种方法是使用正则表达式。但是作为初学者,我建议使用字符串函数,因为它们可以帮助您理解正在发生的事情。正则表达式对于初学者来说并不容易理解 您应该在msdn中找到这些方法的详细说明: 索引of: 子字符串: 拆分: 正则表达

如何使用C#获取破折号括号之间的所有字符

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

我想得到XX。
破折号[-]和括号[]是常量。

您可以通过组合
字符串.IndexOf(字符串)
字符串.substring(开始,长度)
或使用
字符串.split(char)
-方法来获得它们

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

您应该在msdn中找到这些方法的详细说明:

索引of:

子字符串:

拆分: 正则表达式:
“-(.+)\(


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

您可以使用
子字符串()
函数来获取
字符串所需的部分

            string x = "PU - XX (AYT)";
            int end = x.IndexOf("(");
            int begin = x.IndexOf("-");    
            string requiredPart=x.Substring(begin+1, (end - begin)-1);
变量requiredPart包含介于
-
之间的字符串(

string str=“PU-XX(AYT)”;
int s=str.IndexOf('-');
if(s<0)//确保字符串包含破折号
返回“”;
其他的
{
int e=str.IndexOf(“(”,s+1)//开始查找括号
//从此以后
return(e>=0?str.Substring(s+1,e-s):“”);//确保它也包含一个括号
}

在这里,这个正则表达式只用于查找字符串的中间部分,介于“-”和“(“这会自动排除空格

(?<=- ).*(?= \()

(?你的意思是“开括号”?你还想要破折号后面和括号前面的空格吗?我已经编辑了你的标题。请看“”,其中的共识是“不,他们不应该”。所以很多人碰巧混淆了括号“[]”、大括号“{}”和括号“()”.再加上一些评论,它helps@Lokesh:谢谢,添加了一些注释。虽然认为代码是不言自明的。
(?<=- ).*(?= \()