我有以下字符串子串特定字包含它們之間特殊字符
string test = "viv-ek is a good boy.Mah - esh is Cra - zy.";
我想從該字符串
得到一些只有"-"
與文字之間有一部分具有" - "
{"Vivek","Mahesh","Crazy"}
話。
我有以下字符串子串特定字包含它們之間特殊字符
string test = "viv-ek is a good boy.Mah - esh is Cra - zy.";
我想從該字符串
得到一些只有"-"
與文字之間有一部分具有" - "
{"Vivek","Mahesh","Crazy"}
話。
'\ s * - \ s *'會匹配分隔符,如「 - 」 。 – Kasramvd
這可能做的伎倆爲您
string test = "viv-ek is a good boy.Mah - esh is Cra - zy.";
test = test.Replace(" -", "-").Replace("- ", "-").Replace(".", ". ");
//Or
//test = test.Replace(" - ", "-").Replace(".", ". ");
string[] allwords = test.Split(' ');
List<string> extractedWords=new List<string>();
foreach(string wrd in allwords)
{
if(wrd.Contains("-"))
{
extractedWords.Add(wrd.Replace("-", ""));
}
}
如果你只需要選擇那些話使用:
string test = "viv-ek is a good boy.Mah - esh is Cra - zy.";
var words =
Regex
.Matches(test, @"(?<part>\w+)(\s*-\s*(?<part>\w+))+\b")
.Cast<Match>()
.Select(
x => string.Join(
string.Empty,
x.Groups["part"].Captures.Cast<Capture>().SelectMany(capture => capture.Value)))
.ToList();
words
是包含 「維韋克」 名單, 「馬赫什」,「瘋狂」。
更換的話會同樣的方式工作:
var replacingValues = new Dictionary<string, string> { { "Crazy", "XXX" } };
var test = "viv-ek is a good boy.Mah - esh is Cra - zy.";
var replacedTest =
Regex.Replace(
test,
@"\b(?<part>\w+)(\s*-\s*(?<part>\w+))+\b",
match =>
{
var word = string.Join(string.Empty, match.Groups["part"].Captures.Cast<Capture>().SelectMany(capture => capture.Value));
string replacingValue;
return replacingValues.TryGetValue(word, out replacingValue) ? replacingValue : match.Value;
});
replacedTest
包含viv-ek is a good boy.Mah - esh is XXX.
謝謝@維拉環真的幫助 – dhiraj
@dhiraj我添加了一個簡單的示例來替換使用字典來檢查是否做。 –
如果這些( 「 - 」 & 「 - 」)是唯一的可能並且不會打擾其他部分,'string.Replace'和'string.Split'對你來說是很好的工具......: ) – Ian
試着用'test.Replace(' - ','').Replace(' - ','')' –
你確切的問題是什麼?每個人都發布了關於用字符串替換字符' - '的答案。如果這不是必需的答案,那麼解釋一下你的問題。 – Kira