日期:2014-05-20  浏览次数:20683 次

求正则
String   str   =   "str(ET0.a)+ET1.b+substring(ET2.C,1,2) ";
String   str   =   "Str(datatime(ET1.b))+substring(ET2.b)

我想取出这样规则的串里面的ET0.a   ET.b   ,
用正则怎么取呢?

规则是:以ET开头,以+   -   *   /   )   ,   任何一个结尾

------解决方案--------------------
ET[\.\w]*
------解决方案--------------------
貌似是四则运算直接String.split( "[+-*/] ")。得到数组。然后去掉ET.
------解决方案--------------------
Pattern p=Pattern.compile( "ET.+?(?=[+\\-\\*/\\),]) ");
String str = "str(ET0.a)+ET1.b+substring(ET2.C,1,2) ";
Matcher m = p.matcher(str);
while(m.find()){
System.out.println(m.group());
}
------解决方案--------------------
楼上正解