首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Regex将文本替换为用户案例文本,如何维护实际的单词大小写

Regex将文本替换为用户案例文本,如何维护实际的单词大小写
EN

Stack Overflow用户
提问于 2015-04-15 06:15:54
回答 2查看 47关注 0票数 0

我正在用<span>keyword</span>来匹配和替换匹配词,

支持用户以小写输入搜索关键字,因为united states与关键字匹配并替换它

实际字符串

String str = "This is United States Of America"

匹配后的&替换函数字符串由用户输入的小写匹配字符串替换

赛后This is united states Of America

我想匹配并替换字符串,同时维护字符串或数据库中匹配单词的实际情况。

我对此使用了以下代码。我如何才能改变这一点,以使我的需求有意义。

代码语言:javascript
复制
    string pattern = @"(\b(?:" + Request["SearchKeyword"].ToString().Trim() + @")\b))";
    regex = new Regex(pattern, RegexOptions.IgnoreCase);
    result = regex.Replace(result, "<span class='highlight'>" + Request["SearchKeyword"].ToString() + "</span>",);

期望输出 This is United States Of America

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-15 06:24:24

您需要使用Match().Value而不是原始的请求字符串。

下面是您可以使用的代码:

代码语言:javascript
复制
var req = "united states";
var str = "This is United States Of America";
var pattern = @"((?<=^\p{P}*|\p{Zs})(?:" + req.ToString().Trim() + @")(?=\p{P}*$|\p{Zs}))";
var regx = new Regex(pattern, RegexOptions.IgnoreCase);
var m = regx.Match(str);
var result = string.Empty;
if (m.Success)
   result = regx.Replace(str, "<span class='highlight'>" + m.Value + "</span>");

输出:

编辑:(万一)

使用lambda,您可以获得相同的结果:

代码语言:javascript
复制
var regx = new Regex(pattern, RegexOptions.IgnoreCase);
var result = regx.Replace(str, m => "<span class='highlight'>" + m.Value + "</span>");

即使我们没有对手,也是安全的。

票数 1
EN

Stack Overflow用户

发布于 2015-04-15 06:27:35

您可以使用又一次超载 of Regex.Replace方法和MatchEvaluator。

代码语言:javascript
复制
string str = "This is United States Of America";
string SearchKeyword = "united states";
string pattern = @"(\b(?:" + SearchKeyword.Trim() + @")\b)";
var regex = new Regex(pattern, RegexOptions.IgnoreCase);
var result = regex.Replace(str, new MatchEvaluator(m => "<span class='highlight'>" + m.ToString() + "</span>"));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29642827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档