Expresiones Regulares

Hola buenas tardes Programadores, tengo problemas al querer validar con expresiones regulares

Este es el fragmento que he podido realizar que se supone que es el que valida el "while"

private void Boton_ComparaActionPerformed(java.awt.event.ActionEvent evt) {
        String str = Texto_Ingresa.getText();
        Pattern pat = Pattern.compile("while\\(.*\\)\\{.* \\}");
        Matcher mat = pat.matcher(str);

        if(mat.find()){
            Label_mensaje.setText("Correcto");
        }else{
            Label_mensaje.setText("Incorrecto");
        }
    }
<blockcode>

El problema es que no se como agregar los espacios (" "), el igual (=) realmente ya no se que mas sigue, he estado investigando pero no he podido encontrar la información que necesito.

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

qué pretendes?

Qué patrón o patrones son los que pretendes encontrar con esa regex? A qué te refieres con los espacios y el igual? dónde se supone que deben ir?

El espacio es igual a cualquier otro caracter. Si quieres validar cero o más espacios es simplemente  * (espacio asterisco)

Ya he avanzado lo que tiene

Ya he avanzado lo que tiene que hacer el programa es validar que la sintaxis del while esta bien escrita esto es lo que llevo hasta ahorita

String sr = Texto_Ingresa.getText();
       
        Pattern pat = Pattern.compile("while[\\\\(][ ]*[A-Za-z0-9]+[ ]*[\\=|<|>|!=]+[ ]*[0-9|true|false]+[\\\\)][\\\\{].*[\\}]");
        Matcher mat = pat.matcher(sr);
       
        if(mat.find()){
            Label_Mensaje.setText("Correcto");
        }else{
            Label_Mensaje.setText("Incorrecto");
         }
Imagen de ezamudio

mmmmm

Y a poco eso valida while (bla (un espacio entre while y paréntesis) y while           ( (varios espacios)?

Todas estas variantes son válidas en casi cualquier lenguaje:

while           (        condicion             ) {
codigo
}

while ( unacosa
 ==
        otracosa
    )

{
    codgo; }

while

(

blable
!=

            null           )

             { codigo;
}

while(a==b&&(c!=d      ||      e instanceof f ) && !g.metodo(h )    )
{ codigo; }

a qué nivel tienes que validar? pura sintaxis? gramática?

Bueno, a fin de cuentas mi recomendación sería simplemente no usar regex; mejor identifica los tokens y los vas validando, puedes incluso armar un árbol a partir de los tokens y luego validas el árbol, es más laborioso pero mucho más certero.