c# 搜索第一个匹配的字符串并替换

如有一大段字符串"sdfjls广东sdfx564565498广东xcv898广东",这段字符串里包含了三个"广东"这个词,现在想找出来第一个"广东"并把它改为"东莞",用... 如有一大段字符串"sdfjls广东sdfx564565498广东xcv898广东",这段字符串里包含了三个"广东"这个词,现在想找出来第一个"广东"并把它改为"东莞",用C#怎么写?
高手很多哈哈,非常谢谢!
我做这个的原因是想仿照像新浪的一种功能:新浪可在每篇文章中自动为某个关键词加上链接,比如当文章中出现"石油"时,他就改为"石油(100.87,2.35"),即石油的价钱和涨跌值.
那么现在的问题是,我若在后台添加文章时自动修改了这个关键词,但页面生成静态后用户再浏览时的值就是不动的了,不是实时值...这个问题该怎么处理呢?
解决了加分啊,谢谢谢谢了
展开
 我来答
茂烟f
推荐于2017-11-28 · TA获得超过329个赞
知道小有建树答主
回答量:666
采纳率:0%
帮助的人:658万
展开全部
string s="sdfjls广东sdfx564565498广东xcv898广东";
string fs="广东";
string th="东莞";
//先找出位置
int pos=s.indexOf(fs);
//取位置前部分+替换字符串+位置(加上查找字符长度)后部分
string newstr = s.substring(0,pos)+th+s.substring(pos+fs.length);
--------------------------
后面这个问题简单嘛 用ajax技术
在生成静态时对应生成该页关键字,用户访问时 使用js异步(ajax)访问服务器 获取实时数据
在再对页面指定关键字进行替换
不过做起来还是很有工作量的
yaa2004
2011-05-31 · 超过59用户采纳过TA的回答
知道小有建树答主
回答量:157
采纳率:0%
帮助的人:147万
展开全部
/// <summary>
///
/// </summary>
/// <returns>数据集</returns>
[TestMethod]
public void testReplace()
{
string searchStr = "广东";
string replaceStr = "东莞";
string tmpStr = "sdfjls广东sdfx564565498广东xcv898广东";
int startIndex = tmpStr.IndexOf(searchStr);
int charLength = startIndex + searchStr.Length;

Debug.WriteLine(tmpStr.Substring(0, charLength).Replace(searchStr,replaceStr) + tmpStr.Substring(charLength));

}

输出结果:sdfjls东莞sdfx564565498广东xcv898广东

那么现在的问题是,我若在后台添加文章时自动修改了这个关键词,但页面生成静态后用户再浏览时的值就是不动的了,不是实时值...这个问题该怎么处理呢?
对实时动态的值可以使用ajax来实现
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
itfmt
2011-06-02
知道答主
回答量:4
采纳率:0%
帮助的人:0
展开全部
using System.Text.RegularExpressions;//引用

string news = "广东,省会广州,辖21个省辖市。广东是中国大陆南端沿海的一个省份";
string str = "广东";//从数据库中取
string replace = "广东(粤)";//从数据库中取

/* 上面两个变量你可以放在一个字段里面,字段值比如可以为:广东,广东(粤);然后用string[] arr = Regex.Split("广东,广东(粤)", ",") 解析出来(例子的结果为arr[0]=="广东"; arr[1]=="广东(粤)"; 这样你可以再加一些逻辑,实现不同关键字的替换 */

Regex reg = new Regex(str);
Response.Write(reg.Replace(news, replace, 1));
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Endless_Lovemz
2011-05-27 · 超过23用户采纳过TA的回答
知道答主
回答量:85
采纳率:0%
帮助的人:0
展开全部
string s = "sdfjls广东sdfx564565498广东xcv898广东";
string rep = "广东";
int l = s.IndexOf(rep);
Response.Write(s.Substring(0, l) + "东莞" + s.Substring(l + rep.Length));
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wkoly2010
2011-05-27 · TA获得超过121个赞
知道小有建树答主
回答量:330
采纳率:0%
帮助的人:226万
展开全部
string s = "sdfjls广东sdfx564565498广东xcv898广东";
System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex("广东");
ShowMessageBox(reg.Replace(s, "东莞", 1));
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(12)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式