如何在c#中的某些特定字符串之间替换字符串 对于Exmaple
string temp = "I love ***apple***";
我需要在" ***"之间获得价值。字符串,即" apple&#34 ;;
我尝试过使用IndexOf,但只获取所选值的第一个索引。
答案 0 :(得分:2)
您应该使用正则表达式来正确操作各种值,例如***banana***
或***nut***
,因此下面的代码可能对您有用。我创建了*** ***
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
namespace RegexReplaceTest
{
class Program
{
static void Main(string[] args)
{
string temp = "I love ***apple***, and also I love ***banana***.";
//This is for replacing the values with specific value.
string result = Regex.Replace(temp, @"\*\*\*[a-z]*\*\*\*", "Replacement", RegexOptions.IgnoreCase);
Console.WriteLine("Replacement output:");
Console.WriteLine(result);
//This is for extracting the values
Regex matchValues = new Regex(@"\*\*\*([a-z]*)\*\*\*", RegexOptions.IgnoreCase);
MatchCollection matches = matchValues.Matches(temp);
List<string> matchResult = new List<string>();
foreach (Match match in matches)
{
matchResult.Add(match.Value);
}
Console.WriteLine("Values with *s:");
Console.WriteLine(string.Join(",", matchResult));
Console.WriteLine("Values without *s:");
Console.WriteLine(string.Join(",", matchResult.Select(x => x.Trim('*'))));
}
}
}
这里有一个工作示例:http://ideone.com/FpKaMA
希望这些示例可以帮助您解决问题。