English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Método flags() de patrón en Java y ejemplos

java.regexLa clase de paquete Pattern es la representación compilada de la expresión regular.

Este tipo decompile()El método acepta valores de cadena que representan la expresión regular y devuelvePatternObjeto, a continuación se muestra la firma de este método.

static Pattern compile(String regex)

Otra variante de este método acepta valores enteros que representan las banderas, a continuación se muestra la firma del método compile con dos parámetros.

static Pattern compile(String regex, int flags)

EstePatrónLa clase proporciona varios dominios, cada uno representando una bandera

NúmeroColumna y descripción
1CANON_EQ
Sólo cuando dos caracteres normales son igualesSóloCoincide.
2CASE_INSENSITIVE
Coincide con caracteres, sin distinción de mayúsculas y minúsculas.
3Comentarios
Permite espacios y comentarios de patrón.
4DOTALL
Habilita el modo dotall. Donde el carácter meta “.” coincide con todos los caracteres, incluyendo los caracteres de final de línea.
5LITERAL
Habilita el análisis de texto del patrón. Es decir, todos los caracteres meta y secuencias de escape en la secuencia de entrada se consideran caracteres de texto.
6MULTILINE
Habilita el modo de múltiples líneas, es decir, considera toda la secuencia de entrada como una única línea.
7UNICODE_CASE
Habilita laReconoceLa coincidencia de mayúsculas y minúsculas de Unicode, es decir, cuando se utiliza junto con CASE_INSENSITIVE. Si se realiza una búsqueda de caracteres Unicode con la expresión regular, los caracteres Unicode en ambas situaciones coincidirán.
8UNICODE_CHARACTER_CLASS
Habilita la versión Unicode de las clases de caracteres predefinidas y POSIX.
9UNIX_LINES
Esta bandera habilita el modo de línea Unix.

Este tipo deflags()El método devuelve las banderas utilizadas en el patrón actual.

Ejemplo

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class COMMENTES_Example {
   public static void main(String[] args) {}}
      Scanner sc = new Scanner(System.in);
      System.out.println("Ingrese su nombre: ");
      String name = sc.nextLine();
      System.out.println("Ingrese su fecha de nacimiento: ");
      String dob = sc.nextLine();
      //La expresión regular comienza con MM-DD-Formato YYY acepta fechas
      String regex = "^(1[0-2]|0[1-9)]/ # Para Mes\n" + "(3[01]|[12][0-9]|0[1-9)]/ # Para Fecha\n"
+ "[0-9]4}$ # Para Año";
      //Crear un objeto Pattern
      Pattern pattern = Pattern.compile(regex, Pattern.COMMENTS);
      //Crear un objeto Matcher
      Matcher matcher = pattern.matcher(dob);
      boolean result = matcher.matches();
      if(result) {
         System.out.println("La fecha de nacimiento proporcionada es válida");
      } else {
         System.out.println("La fecha de nacimiento proporcionada no es válida");
      }
      System.out.println("Bandera utilizada: ");+ pattern.flags());
   }
}

Resultado de salida

Ingrese su nombre:
Krishna
Ingrese su fecha de nacimiento:
09/26/1989
La fecha de nacimiento proporcionada es válida
Bandera utilizada: 4