Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

202
Vistas
Diferencia entre Pattern.asMatchPredicate y Pattern.asPredicate

Java 11 agregó algunos métodos nuevos a la clase Pattern (una versión compilada de una expresión regular), que incluyen:

  • asPredicate
  • asMatchPredicate

Estoy tratando de entender la diferencia entre los dos y cuándo me gustaría usar uno sobre el otro.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

  • Pattern.asPredicate devolverá verdadero si alguna parte de la cadena de entrada coincide con la expresión regular. Debe usar este método si está probando un cuerpo de texto más grande para un patrón determinado. Por ejemplo, para probar si un comentario de un usuario contiene un hipervínculo.
  • Pattern.asMatchPredicate devolverá verdadero si toda la cadena de entrada coincide con la expresión regular. Debe usar este método si está probando la entrada completa para un patrón determinado. Por ejemplo, para validar el número de teléfono de un usuario en su perfil.

Pattern.asPredicate usa internamente Matcher.find() , mientras que Pattern.asMatchPrediate usa internamente Matcher.matches() . Entonces, la diferencia entre los dos se reduce a la diferencia entre estos dos métodos de la clase Matcher .

A continuación se muestran algunos ejemplos para mostrar la diferencia. Puede copiar y pegar el código siguiente en un entorno limitado de Java en línea como https://www.compilejava.net/ para jugar con él usted mismo.

 import java.util.regex.Pattern; import java.util.function.Predicate; public class main { public static void main(String[] args) { Pattern pattern = Pattern.compile("abc"); // asPredicate will match any part of the input string Predicate<String> asPredicate = pattern.asPredicate(); // True, because abc is part of abc System.out.printf("asPredicate: abc: %s\n", asPredicate.test("abc")); // True, because abc is part of abcabc System.out.printf("asPredicate: abcabc: %s\n", asPredicate.test("abcabc")); // True, because abc is part of 123abc123 System.out.printf("asPredicate: 123abc123: %s\n", asPredicate.test("123abc123")); // False, because abc is NOT part of 123 System.out.printf("asPredicate: 123: %s\n", asPredicate.test("123")); // -> false // asMatchPredicate will only match the entire input string Predicate<String> asMatchPredicate = pattern.asMatchPredicate(); // True, because abc exactly matches abc System.out.printf("asMatchPredicate: abc: %s\n", asMatchPredicate.test("abc")); // False, because abc does not exactly match abcabc System.out.printf("asMatchPredicate: abcabc: %s\n", asMatchPredicate.test("abcabc")); // False, because abc does not exactly match 123abc123 System.out.printf("asMatchPredicate: 123abc123: %s\n", asMatchPredicate.test("123abc123")); // False, because abc does not exactly match 123 System.out.printf("asMatchPredicate: 123: %s\n", asMatchPredicate.test("123")); } }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda