如何在保持大小写的同时替换单词?
Posted
技术标签:
【中文标题】如何在保持大小写的同时替换单词?【英文标题】:How to replace words while keeping case? 【发布时间】:2022-01-03 02:13:14 【问题描述】:我有一个这样的字符串:
string myString = "String testing string replace"
我想用那个字符串给string这个词赋予一种风格。所以最终的字符串是:
myString = "<span class='myclass'>String</span> testing <span class='myclass'>string</span> replace"
如何以编程方式做到这一点?这样 string 单词的两个实例都保持大小写?
【问题讨论】:
查找正则表达式。具体来说,使用捕获组来捕获您的搜索词,然后在替换期间使用对该组的引用。相关:***.com/questions/26984428/… 代码好吗?我对正则表达式的用法不是很熟悉 您必须处理一般情况,还是您的字符串众所周知? 【参考方案1】:可能是这样的:
var myString2 = Regex.Replace(
myString,
Regex.Escape("string"),
"<span class='myclass'>$0</span>",
RegexOptions.IgnoreCase
);
模式只是您要替换的字符串,转义,因此如果其中有任何字符对正则表达式(如句点)意味着某些字符,它们将完全匹配。当匹配发生时,整个匹配存储在变量 $0 中。这个变量可以用于替换,所以当我们指定 IgnoreCase 时,它意味着第一个匹配在String
,这意味着替换 $0 是String
.. 第二个匹配在string
【讨论】:
【参考方案2】: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);
【讨论】:
以上是关于如何在保持大小写的同时替换单词?的主要内容,如果未能解决你的问题,请参考以下文章
freeCodeCamp:Search and Replace
Search and Replace -freecodecamp算法题目