如何在保持大小写的同时替换单词?

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算法题目

VIM 操作笔记

FCC_Intermediate Algorithm Scripting_Search and Replace

将所有第一个字母转换为大写,每个单词保持小写