如何在保持大小写的同时替换单词?
How to replace words while keeping case?
我有这样一个字符串:
string myString = "String testing string replace"
我想使用那个字符串并给 string 这个词一个样式。所以最后的字符串是:
myString = "<span class='myclass'>String</span> testing <span class='myclass'>string</span> replace"
如何以编程方式执行此操作?以便单词 string 的两个实例都保留它们的大小写?
可能是这样的:
var myString2 = Regex.Replace(
myString,
Regex.Escape("string"),
"<span class='myclass'>[=10=]</span>",
RegexOptions.IgnoreCase
);
模式只是您要替换的字符串,转义因此如果其中有任何字符对 Regex 有意义(如句点),它们将完全匹配。当匹配发生时,整个匹配存储在变量 $0 中。这个变量可以用在替换中,所以当我们指定 IgnoreCase 时,它意味着第一个匹配是 String
,这意味着替换 $0 是 String
.. 第二个匹配是 string
string myString = "String testing string replace";
string stringOut = "";
foreach (var word in myString.Split(new char[] { ' '}))
{
stringOut += $"<span class='myclass'>{word}</span> ";
}
Console.WriteLine(stringOut);
我有这样一个字符串:
string myString = "String testing string replace"
我想使用那个字符串并给 string 这个词一个样式。所以最后的字符串是:
myString = "<span class='myclass'>String</span> testing <span class='myclass'>string</span> replace"
如何以编程方式执行此操作?以便单词 string 的两个实例都保留它们的大小写?
可能是这样的:
var myString2 = Regex.Replace(
myString,
Regex.Escape("string"),
"<span class='myclass'>[=10=]</span>",
RegexOptions.IgnoreCase
);
模式只是您要替换的字符串,转义因此如果其中有任何字符对 Regex 有意义(如句点),它们将完全匹配。当匹配发生时,整个匹配存储在变量 $0 中。这个变量可以用在替换中,所以当我们指定 IgnoreCase 时,它意味着第一个匹配是 String
,这意味着替换 $0 是 String
.. 第二个匹配是 string
string myString = "String testing string replace";
string stringOut = "";
foreach (var word in myString.Split(new char[] { ' '}))
{
stringOut += $"<span class='myclass'>{word}</span> ";
}
Console.WriteLine(stringOut);