怎么用一个正则表达式表示一个字符串中是否含有字母"abs",并要把该字符串后面括号内的内容给提取出来,例如
String s=x1^2+x2^2+1/(4*5.0)*((abs(1.0-2*5.0*(x1+5))+(1.0-2*5.0*(x1+5)))/2-1.0*1.0)-1.0*(x1+x2-4)+5.0*(x1+x2-4)
怎样把"(1.0-2*5.0*(x1+5))"找出来???
有哪位好心人能帮小妹看看不?本人将感激不尽~~~~~~~~~~
String s=x1^2+x2^2+1/(4*5.0)*((abs(1.0-2*5.0*(x1+5))+(1.0-2*5.0*(x1+5)))/2-1.0*1.0)-1.0*(x1+x2-4)+5.0*(x1+x2-4)
怎样把"(1.0-2*5.0*(x1+5))"找出来???
有哪位好心人能帮小妹看看不?本人将感激不尽~~~~~~~~~~
import java.util.regex.Pattern;public class xm { public static void main(String[] args) {
String s="x1^2+x2^2+1/(4*5.0)*((abs(1.0-2*5.0*(x1+5))+(1.0-2*5.0*(x1+5)))/2-1.0*1.0)-1.0*(x1+x2-4)+5.0*(x1+x2-4)";
String ptn="abs\\((1\\.0\\-2\\*5\\.0\\*\\(x1\\+5\\))\\)";
Pattern p=Pattern.compile(ptn);
Matcher m=p.matcher(s);
while(m.find()){
System.out.println(m.group(1));
}
}
}
string a = ...;
a.contain?();
indexOf("abs");
int index=s.indexOf("abs");
if(index>0){
int count=0;
int last=0;
for(int i=index+3;i<s.length();i++){
char c=s.charAt(i);
if(c=='(') count++;
else if(c==')') count--;
if(count==0){last=i;break;}
}
System.out.println(s.substring(index+3,last+1));
}