Doubt with JAVA regular expression

Asked

Viewed 37 times

0

Hello, I have a question about the following case. I’ll give you an example code of how mine is

String texto = "111 aaa";
 String reg = "\\d+";
Pattern p = Pattern.compile(reg);
Matcher m = p.matcher(texto);
while(m.find()){
System.out.print(m.group());
}

I know that within the while the "m.group" will present the search result "111" in the text. My question is: How to save this result in an external variable to be used in other classes?

  • 1

    You talk about doing it? String s = m.group();

1 answer

2


If that’s what I understand, since the function group() returns a string, you can do the following:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

//Classe de demonstração para armazenar o valor da saída da Regular Expressão:
//Mas você pode criar qualquer classe.
//Nota: esta classe não é obrigatória, somente, se quiser.
class Demo {
    static String s = "";

    public static void setS(String myString) {
        s = myString;
    }

    public static String getS() {
        return s;
    }
}

class Main {

    public static void main(String[] args) {

        String texto = "111 aaa";

        String reg = "\\d+";

        Pattern p = Pattern.compile(reg);

        Matcher m = p.matcher(texto);

        // Cria-se uma variável, à qual, os valores da função group()
        // serão atribuídos.
        String s = "";

        while (m.find()) {
            // Aqui, é feita a atribuição:
            s += m.group();
            //Isto: s += m.group(); é a mesma coisa disto:
            //s = s + m.group();
        }
        // Aqui, é definido o valor de 's' (111), digamos, numa variável externa de
        // outra classe.
        Demo.setS(s);

        // Aqui, obtém o valor de s.
        System.out.println(Demo.getS());

        // Só para mostrar que não precisa de uma classe, mas só se você realmente quiser.
        System.out.print(s);

    }
}

Demo:

https://repl.it/@TaffarelXavier/QuietMinorJavascript

REFERENCE:
1. Matcher groud() - https://docs.oracle.com/javase/7/docs/api/java/util/regex/Matcher.html#group()

  • 1

    Thank you partner, I could notice that I did not start the blank variable and also was not increasing the value found. Thanks for the strength, success and a great day

Browser other questions tagged

You are not signed in. Login or sign up in order to post.