问个替换的问题

ayun00 2012-03-13 09:43:09
想做个通知模板, 通知内容想用模板实现
模板里面有2部分活动的,
1种是根据条件进行替换
还一种是用户填写的内容

我打算用 ${0},${1},${2} ....${n} 来表示 根据条件替换的内容

用户填写的内容用[#] 表示 然后输出input 控件让用户填写
这样得到一个 request 的数组
如何把这个数组的内容依次替换掉[#] 标记呢?
...全文
119 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
EnForGrass 2012-03-13
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 ayun00 的回复:]

1.不定长
2.怕操作者弄错序号

引用 7 楼 tongiii 的回复:
不明白,

C# code


string[] =new string[]{"一","二","三"};
string y = string.Format("a{0}的方式的分{1},dfs{2}",);


这样不可以吗?难道说有“龟腚”,只能用[#]不能用{0}来占坑吗?
[/Quote]
不知道用正则替换行不行
干巴猴儿 2012-03-13
  • 打赏
  • 举报
回复
还是老老实实遍历,逐个替换吧。
可以参照五楼的建议,用反编译工具,查查string.format的源码,
改成适用的方法。
ayun00 2012-03-13
  • 打赏
  • 举报
回复
1.不定长
2.怕操作者弄错序号

[Quote=引用 7 楼 tongiii 的回复:]
不明白,

C# code


string[] =new string[]{"一","二","三"};
string y = string.Format("a{0}的方式的分{1},dfs{2}",);


这样不可以吗?难道说有“龟腚”,只能用[#]不能用{0}来占坑吗?
[/Quote]
干巴猴儿 2012-03-13
  • 打赏
  • 举报
回复
不明白,

string[] =new string[]{"一","二","三"};
string y = string.Format("a{0}的方式的分{1},dfs{2}",);

这样不可以吗?难道说有“龟腚”,只能用[#]不能用{0}来占坑吗?
ayun00 2012-03-13
  • 打赏
  • 举报
回复
有2种标记

[Quote=引用 4 楼 tongiii 的回复:]
系统自带的格式话函数,不适合用吗?

C# code


string.Format("{0},你好!欢迎光临{1}", "张三","北京");
[/Quote]
bdmh 2012-03-13
  • 打赏
  • 举报
回复
如果你有Reflector.exe反编译工具的话,你可以看看.net的string类的Format方法的实现,你可以借鉴他的解决方法,就是根据标识{},找到位置,然后添加到StringBuilder,最后替换后,在ToString

其实你就做个遍历替换就ok了
干巴猴儿 2012-03-13
  • 打赏
  • 举报
回复
系统自带的格式话函数,不适合用吗?

string.Format("{0},你好!欢迎光临{1}", "张三","北京");
朕赐你肥皂 2012-03-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ayun00 的回复:]

数组arr[3] {"一","二","三"}
字符串 "a[#]的方式的分[#],dfs[#]"

替换结果 "a一的方式的分二,dfs三"
[/Quote]
字符串按照[]去分割,然后遍历,对应的将数组中的值与字符串数组对应,下标完全一致
ayun00 2012-03-13
  • 打赏
  • 举报
回复
数组arr[3] {"一","二","三"}
字符串 "a[#]的方式的分[#],dfs[#]"

替换结果 "a一的方式的分二,dfs三"
ayun00 2012-03-13
  • 打赏
  • 举报
回复
内容 "a[#]的方式的分[#],dfs[#]" 这样的字符串 和数组arr[3] 怎么把数组里的内容依次替换掉[#]这个标记啊

ayun00 2012-03-13
  • 打赏
  • 举报
回复
正则怎么弄呢?

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧