-4
Ich bin neu in regulären Ausdrücken. Ich teste einen iterativen regulären Ausdruck. Zum ersten Mal funktioniert es, aber das zweite Mal Muster wird nicht erneut initialisiert.Warum funktioniert das nicht im regulären Ausdruck?
Hier ist mein Code:
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);
}
Was meinst du mit "* ... Muster wird nicht wieder initialisiert *"? Welches Verhalten hast du erwartet und was hast du stattdessen beobachtet? – Pshemo
wenn die Schleife zum zweiten Mal ausgeführt wird p = Pattern.compile ("tan \\ ([0-9] + \\)"); funktioniert nicht – Abhishek
Welche Schleife? Es gibt 3. Was ist die Definition von "nicht funktioniert"? –