简单的正则表达式替换以保留原始字符串
本文关键字:保留 原始 字符串 替换 正则表达式 简单 | 更新日期: 2023-09-27 18:08:21
我有这个:
Title = Regex.Replace(Title, s, "<span style='"background:yellow'">" + s + "</span>", RegexOptions.IgnoreCase);
其中s
是类似于facebook
的词。如果标题是:
How to make a Facebook game
我想替换为:
How to make a <span style="background:yellow">Facebook</span> game
即使搜索词是"脸书"(注大写(。基本上,我如何保留单词的原始大写?
另一个例子,搜索项FACEBOOK
,字符串Hello FaCeBoOk
被转换为Hello <span style="background:yellow">FaCeBoOk</span>
您可以使用$&
替代:
Regex.Replace(Title, s, "<span style='"background:yellow'">$&</span>", RegexOptions.IgnoreCase)
您可以简单地包含一个与单词"facebook"匹配的捕获组,并将该捕获组作为替换字符串的一部分。这最终会将它包含在最终结果中,就像它在输入中出现的一样。
var title = "How to make a Facebook game";
title = Regex.Replace(title,
"(facebook)",
"<span style='"background:yellow'">$1</span>",
RegexOptions.IgnoreCase);
在实际操作中查看。
var input = "How to make a Facebook game, do you like facebook?";
var searchFor = "facebook";
var result = Regex.Replace(
input,
searchFor,
"<span style='"background:yellow'">$+</span>",
RegexOptions.IgnoreCase);
唯一重要的是$+
。它包含最后获取的文本。这甚至适用于"如何制作一个Facebook游戏,你喜欢Facebook吗?"第一个Facebook将为左大写,第二个为左小写。
我要补充的是,如果你只想寻找完整的单词,那么你可以制作:
searchFor = @"'b" + searchFor + @"'b";
这将只查找单词边界上的字符串。