简单的正则表达式替换以保持原始字符串
我有这个:
Title = Regex.Replace(Title, s, "" + s + "", RegexOptions.IgnoreCase);
s
是像facebook
这样的词。 如果标题是:
How to make a Facebook game
我想换成:
How to make a Facebook game
即使搜索词是’facebook’(注意大写)。 基本上,我如何保留单词的原始大小写?
另一个例子,搜索词FACEBOOK
,字符串Hello FaCeBoOk
转为Hello FaCeBoOk
您可以使用$&
替换 :
Regex.Replace(Title, s, "$&", RegexOptions.IgnoreCase)
您可以简单地包含与单词“facebook”匹配的捕获组,并将该捕获组包含为替换字符串的一部分。 这将最终将其包含在最终结果中,与输入中显示的结果完全相同。
var title = "How to make a Facebook game"; title = Regex.Replace(title, "(facebook)", "$1", RegexOptions.IgnoreCase);
看到它在行动 。
var input = "How to make a Facebook game, do you like facebook?"; var searchFor = "facebook"; var result = Regex.Replace( input, searchFor, "$+", RegexOptions.IgnoreCase);
唯一重要的是$+
。 它包含最后获取的文本。 这甚至适用于“如何制作Facebook游戏,你喜欢脸书吗?” 第一个Facebook将保留为大写,第二个将保留为小写。
我要补充一点,如果你只想查看整个单词,那么你可以:
searchFor = @"\b" + searchFor + @"\b";
这将仅查找字边界上的字符串。