我有一个字符串:
string valueA = "Free Chips (Save $43 / month)";
现在我想检索(Save
之前发生的字符串,即我想要Free Chips
。我怎样才能做到这一点?
string valueB = valueA.Replace();
答案 0 :(得分:1)
使用Substring
和IndexOf
string valueB = valueA.Substring(0, valueA.IndexOf("(Save", StringComparison.Ordinal))
.Trim();
答案 1 :(得分:1)
您可以将正则表达式与正向前瞻一起使用:
.*?(?=\s*\(Save)
完整代码:
using System.Text.RegularExpressions;
string query = "Free Chips (Save $43 / month)";
// ...
Regex r = new Regex(@".*?(?=\s*\(Save)");
Match m = r.Match(query);
if(m.Success) {
string result = m.ToString(); // result = "Free Chips"
}
如果m.Success
不是字符串的一部分,则 false
为"(Save"
。
答案 2 :(得分:0)
其中一种方法是正则表达式(当然对于这样一个简单的字符串,它可能有点开销):
var regex = new Regex("(.*)\(Save");
// (.*) - match anything and group it
// \(Save - match "(Save" literally
var regexMatch = regex.Match(valueA);
if (regexMatch.Success)
{
var valueB = regex.Match(valueA).Groups[1].Value;
//and so on
}
答案 3 :(得分:0)
string valueA = "Free Chips (Save $43 / month)";
string valueB = valueA.Substring(0, valueA.IndexOf(" (Save"));