子字符串我有一個字符串:刪除字符串
string valueA = "Free Chips (Save $43/month)";
現在我想檢索(Save
之前出現的字符串,即我要Free Chips
。我怎樣才能做到這一點?
string valueB = valueA.Replace();
子字符串我有一個字符串:刪除字符串
string valueA = "Free Chips (Save $43/month)";
現在我想檢索(Save
之前出現的字符串,即我要Free Chips
。我怎樣才能做到這一點?
string valueB = valueA.Replace();
使用Substring
和IndexOf
string valueB = valueA.Substring(0, valueA.IndexOf("(Save", StringComparison.Ordinal))
.Trim();
的方法之一是正則表達式(當然對於這樣一個簡單的字符串的它可能是一個小的開銷):
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
}
string valueA = "Free Chips (Save $43/month)";
string valueB = valueA.Substring(0, valueA.IndexOf(" (Save"));
您可以使用正則表達式和p ositive前瞻:
.*?(?=\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"
不是字符串的一部分。
簡單而完美! –