如何使用C#获取 DASH 和 BRACKET 之间的所有字符?
字符串x =“PU - XX (AYT)”
我想 XX 。 短划线[ - ]和方括号[(])是常量。
答案 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)
在这里,这个正则表达式只能找到字符串的中心部分,“ - ”和“(”之间的任何内容都会自动排除空格。
(?<=- ).*(?= \()