C#语言 如何替换指定格式文本内容
类似这样的一个字符串~{Yx[1,1]|(Yx[11,3]&Yx[22,4])|Yx[24,16]}每一个Yx[*,*]可查询数据库获取对应的中文描述(查询算法我知道)如...
类似这样的一个字符串
~{Yx[1,1]|(Yx[11,3]&Yx[22,4])|Yx[24,16]}
每一个Yx[*,*]可查询数据库获取对应的中文描述(查询算法我知道)
如何将查到的中文描述将原来的Yx[*,*]替换掉,但不改变其他符号的位置。 展开
~{Yx[1,1]|(Yx[11,3]&Yx[22,4])|Yx[24,16]}
每一个Yx[*,*]可查询数据库获取对应的中文描述(查询算法我知道)
如何将查到的中文描述将原来的Yx[*,*]替换掉,但不改变其他符号的位置。 展开
展开全部
//引用单元
using System.Text.RegularExpressions;
//示例
string str = "~{Yx[1,1]|(Yx[11,3]&Yx[22,4])|Yx[24,16]}";
str = Regex.Replace(str, @"Yx\[(\d+),(\d+)\]", m =>
{
int x = int.Parse(m.Groups[1].Value);
int y = int.Parse(m.Groups[2].Value);
//此处的x和y就分别是1,1 11,3 22,4等等,你可以按需要进行替换,比如
if (x == 11 && y == 3) return "我被替换了";
else return m.Value;
});
MessageBox.Show(str);//结果为~{Yx[1,1]|(我被替换了&Yx[22,4])|Yx[24,16]}
追问
谢谢解答,但是
我需要替换所有Yx[*.*],并且我事先并不知道*.*具体的数值。
我有一种想法,先把每一个Yx[*.*]提取出来,并在原字符串相应位置做上标记,查询到了中文描述后,再把标记替换成相应的中文描述,不知是否可行,如果可行,“并在原字符串相应位置做上标记”这个步骤怎么实现?
追答
怀疑你根本没看明白上面的代码,上面代码是查找所有形如Yx[mm,nn]这种格式的内容,对于每一项找到的内容,都会进入m=>中的代码进行处理,建议研究一下再来问你的问题。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询