En el Conjunto 1 , hemos discutido el enfoque general para verificar si una string es un número válido o no. En esta publicación, discutiremos el enfoque de expresiones regulares para verificar un número.
Ejemplos:
Input : str = "11.5" Output : true Input : str = "abc" Output : false Input : str = "2e10" Output : true Input : 10e5.4 Output : false
Comprobar si una string dada es un entero válido
Para número entero: A continuación se muestra la definición regular de un número entero.
sign -> + | - | epsilon digit -> 0 | 1 | .... | 9 num -> sign digit digit*
Por lo tanto, una de las expresiones regulares para un número entero es
[+-]?[0-9][0-9]*
Implementación:
Java
// Java program to check whether given string // is a valid integer number using regex import java.util.regex.Matcher; import java.util.regex.Pattern; class GFG { public static void main(String[] args) { String input1 = "abc"; String input2 = "1234"; // regular expression for an integer number String regex = "[+-]?[0-9]+"; // compiling regex Pattern p = Pattern.compile(regex); // Creates a matcher that will match input1 against // regex Matcher m = p.matcher(input1); // If match found and equal to input1 if (m.find() && m.group().equals(input1)) System.out.println( input1 + " is a valid integer number"); else System.out.println( input1 + " is not a valid integer number"); // Creates a matcher that will match input2 against // regex m = p.matcher(input2); // If match found and equal to input2 if (m.find() && m.group().equals(input2)) System.out.println( input2 + " is a valid integer number"); else System.out.println( input2 + " is not a valid integer number"); } }
abc is not a valid integer number 1234 is a valid integer number
A continuación se muestran otras expresiones regulares abreviadas para un número entero
[+-]?[0-9]+ [+-]?\d\d* [+-]?\d+
Comprobar si una string dada es un número de punto flotante válido
Para número de punto flotante: A continuación se muestra la definición normal de un número de punto flotante.
sign -> + | - | epsilon digit -> 0 | 1 | .... | 9 digits -> digit digit* optional_fraction -> . digits | epsilon optional_exponent -> ((E | e) (+ | - | epsilon) digits) | epsilon num -> sign digits optional_fraction optional_exponent
Por lo tanto, una de las expresiones regulares para un número flotante es
[+-]?[0-9]+(\.[0-9]+)?([Ee][+-]?[0-9]+)?
Implementación:
Java
//Java program to check whether given string // is a valid floating point number using regex import java.util.regex.Matcher; import java.util.regex.Pattern; class GFG { public static void main (String[] args) { String input1 = "10e5.4"; String input2 = "2e10"; // regular expression for a floating point number String regex = "[+-]?[0-9]+(\\.[0-9]+)?([Ee][+-]?[0-9]+)?"; // compiling regex Pattern p = Pattern.compile(regex); // Creates a matcher that will match input1 against regex Matcher m = p.matcher(input1); // If match found and equal to input1 if(m.find() && m.group().equals(input1)) System.out.println(input1 + " is a valid float number"); else System.out.println(input1 + " is not a valid float number"); // Creates a matcher that will match input2 against regex m = p.matcher(input2); // If match found and equal to input2 if(m.find() && m.group().equals(input2)) System.out.println(input2 + " is a valid float number"); else System.out.println(input2 + " is not a valid float number"); } }
10e5.4 is not a valid float number 2e10 is a valid float number
A continuación se muestra otra expresión regular abreviada para un número flotante
[+-]?\d+(\.\d+)?([Ee][+-]?\d+)?
Artículo relacionado: compruebe si una string dada es un número válido (entero o punto flotante) en Java
Este artículo es una contribución de Gaurav Miglani . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA