日期:2014-05-18  浏览次数:20890 次

求一个正则表达式,要把里面符合条件的子串提取出来,然后生成数组。谢谢
String   str   =   "${61+24*#DetailCount+#Test/#ListCount} ";

怎么把#DetailCount,#Test,#ListCount给提取出来,然后放到数组里面啊?
#Test之间通过+-*/连接。

谢谢,就是不知道正则怎么写。

------解决方案--------------------
package net.rubyeye.webservicedemo;

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test {

/**
* @param args
*/
public static void main(String[] args) {
String str = "${61+24*#DetailCount+#Test/#ListCount} ";
Pattern p=Pattern.compile( "(#{1}\\w+)(?=\\+|-|\\*|/)? ");
Matcher m=p.matcher(str);
List temp=new ArrayList();
while(m.find()){
temp.add(m.group(1));

}
Object []results=temp.toArray();
for(Object s:results){
System.out.println(s);
}

}

}

------解决方案--------------------
JS版
<script>
var obj=[];
var i=0;
var str= "${61+24*#DetailCount+#Test/#ListCount} ";
str.replace(/(#[a-zA-Z]+)/g,function($1){obj[i]=$1;i++;});
alert(obj);
</script>