求一字符串替换问题

herowach 2009-03-16 01:17:44
有一字符串,格式大慨是XXX{variableA}XXXX{variableB}XXX{variableC}
我希望能取到大括号里面的变量名称,变量名不是固定,个数不固定,
然后我需要根据这个变量名称取出对应的内容,替换原字符串中的大括号中的部分,请问这个正则该怎么写?
应该要分两步,第一步是取出各个变量名,然后是替换原字符串,AS,JS或JAVA版都可以。
...全文
111 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
BearKin 2009-03-16
  • 打赏
  • 举报
回复
。。。。。。如果您看过数据结构里 讲 栈 的那一章 你就会发现 有一个现成的方法让你使用:)
zx273064010 2009-03-16
  • 打赏
  • 举报
回复
学习
ouyangxiaokang6 2009-03-16
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 herowach 的回复:]
自己用循环的土办法实现了,
while(sValue.indexOf("{") != -1)
{
var parameter:String = sValue.substring(sValue.indexOf("{")+1, sValue.indexOf("}"));
sValue = sValue.replace("{"+parameter+"}", item.@[parameter]);
}
一会再看看正则匹配能不能实现,关键是对正则不是很熟
[/Quote]
正则写的代码少,但是难理解,lz的土办法也不错呀。
herowach 2009-03-16
  • 打赏
  • 举报
回复
自己用循环的土办法实现了,
while(sValue.indexOf("{") != -1)
{
var parameter:String = sValue.substring(sValue.indexOf("{")+1, sValue.indexOf("}"));
sValue = sValue.replace("{"+parameter+"}", item.@[parameter]);
}
一会再看看正则匹配能不能实现,关键是对正则不是很熟
Landor2004 2009-03-16
  • 打赏
  • 举报
回复
如果你的变量可以是字符、数字、下划线,那么,直接把
String reg = "\\{([a-zA-Z]*)\\}";
换成
String reg = "\\{(\\w*)\\}";
Landor2004 2009-03-16
  • 打赏
  • 举报
回复
如果你的值在Map中的话,可以这样
		String str = "XXX{variableA}XXXX{variableB}XXX{variableC}";
Map<String, String> val = new Hashtable<String, String>();
val.put("variableA", "a");
val.put("variableB", "b");
val.put("variableC", "c");
List<String> list = new ArrayList<String>();
String reg = "\\{([a-zA-Z]*)\\}";
Pattern p = Pattern.compile(reg);
Matcher m = p.matcher(str);
while (m.find()) {
list.add(val.get(m.group(1)));
}
System.out.println(list);
HellMoxi 2009-03-16
  • 打赏
  • 举报
回复
如果XXX和variable都不是固定个数和内容的话。正则能办到么??

有悬念!
jishu_vip 2009-03-16
  • 打赏
  • 举报
回复


用JAVA实现的,查找所有大括号中的内容


public static void main(String[] args) {
String str = "XXX{variableA}XXXX{variableB}XXX{variableC} ";
String regex = "\\{([^}]*)\\}";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(str);
while(m.find()){
System.out.println(m.group(1));
}

String variableA="changeA";
String variableB="changeB";
String variableC="changeC";

}



替换那部分没有看懂什么意思
mumu_java 2009-03-16
  • 打赏
  • 举报
回复
可以考虑正则.
fys249931556 2009-03-16
  • 打赏
  • 举报
回复
在jsp页面中的话。
直接将你的变量<%= %>不就行了??

如果要替换,可以用replaceXXX() 。
herowach 2009-03-16
  • 打赏
  • 举报
回复
举个具体点的例子:
源字符串是: 我的名字是{name},性别是{sex}。
已经知道name="张三"; sex="男";
如果已经知道String s1 = "name"; String s2 = "sex";
可以通过Object[s1] = "张三";
Object[s2] = "sex";

怎么替换到原字符串中?

81,078

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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