-4
我是新來的正則表達式。我正在測試迭代正則表達式。它第一次工作,但第二次模式不會再次初始化。爲什麼這不是在正則表達式中工作?
這裏是我的代碼:
public static void main(String a[])
{
String s="1+2+4*5*tan(tan(30))-5.8+tan(30)";
Pattern p;
Matcher m;
while(s.contains("tan("))
{
double[] x=new double [5];
p=Pattern.compile("tan\\([0-9]+\\)");
m=p.matcher(s);
int i=0;
while(m.find())
{
System.out.println(m.group());
x[i]=Math.tan(Math.toRadians(Double.parseDouble(m.group().replace("tan(","").replace(")",""))));
i++;
}
for(int z=0;z<i;z++)
{
s=s.replaceFirst("tan\\([0-9]+\\)",""+x[z]);
}
}
System.out.println(s);
}
你是什麼意思由「* ...模式不再初始化*」?你期望什麼樣的行爲,你觀察到了什麼? – Pshemo
循環第二次運行時p = Pattern.compile(「tan \\([0-9] + \\)」);不工作 – Abhishek
哪個循環?有3.「不工作」的定義是什麼? –