Java : Pattern (regex) con ejemplos

Pattern (Java SE 22 & JDK 22) en Java con ejemplos.
Encontrará ejemplos de código en la mayoría de los métodos de Pattern.

Nota :


Summary

Una representación compilada de una expresión regular. (Traducción automática)

Class diagram

// Tests if this pattern matches a given input string.
final var pattern = Pattern.compile("a+bc");
final var matchPredicate = pattern.asMatchPredicate();

System.out.println(matchPredicate.test("abc")); // true
System.out.println(matchPredicate.test("aaaabc")); // true

System.out.println(matchPredicate.test("ab")); // false
System.out.println(matchPredicate.test("abcD")); // false
System.out.println(matchPredicate.test("Zabc")); // false
// Tests if this pattern is found in a given input string.
final var pattern = Pattern.compile("a+bc");
final var predicate = pattern.asPredicate();

System.out.println(predicate.test("abc")); // true
System.out.println(predicate.test("aaaabc")); // true

System.out.println(predicate.test("ab")); // false
System.out.println(predicate.test("abcD")); // true
System.out.println(predicate.test("Zabc")); // true
// An examples with a matcher.
final var pattern = Pattern.compile("a+bc");
final var matcher = pattern.matcher("xyz aaaabc 012");

if (matcher.find()) {
    System.out.println(matcher.group()); // "aaaabc"
}

Fields

static final int CANON_EQ

Permite la equivalencia canónica. (Traducción automática)

final var regex = "a\u030A";
System.out.println(regex); // å

final var input = "\u00E5";
System.out.println(input); // å

{
    final var pattern = Pattern.compile(regex, Pattern.CANON_EQ);
    final var matchPredicate = pattern.asMatchPredicate();

    System.out.println(matchPredicate.test(input)); // true
}

{
    final var pattern = Pattern.compile(regex);
    final var matchPredicate = pattern.asMatchPredicate();

    System.out.println(matchPredicate.test(input)); // false
}

static final int CASE_INSENSITIVE

Permite la coincidencia sin distinción entre mayúsculas y minúsculas. (Traducción automática)

final var regex = "abc";
final var input = "ABC";

{
    final var pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
    final var matchPredicate = pattern.asMatchPredicate();

    System.out.println(matchPredicate.test(input)); // true
}

{
    final var pattern = Pattern.compile(regex);
    final var matchPredicate = pattern.asMatchPredicate();

    System.out.println(matchPredicate.test(input)); // false
}

static final int COMMENTS

Permite espacios en blanco y comentarios en el patrón. (Traducción automática)

final var regex = "a b c # xyz";
final var input = "abc";

{
    final var pattern = Pattern.compile(regex, Pattern.COMMENTS);
    final var matchPredicate = pattern.asMatchPredicate();

    System.out.println(matchPredicate.test(input)); // true
}

{
    final var pattern = Pattern.compile(regex);
    final var matchPredicate = pattern.asMatchPredicate();

    System.out.println(matchPredicate.test(input)); // false
}

static final int DOTALL

Habilita el modo dotall. (Traducción automática)

final var regex = "abc..yz";
final var input = "abc\nxyz";

{
    final var pattern = Pattern.compile(regex, Pattern.DOTALL);
    final var matchPredicate = pattern.asMatchPredicate();

    System.out.println(matchPredicate.test(input)); // true
}

{
    final var pattern = Pattern.compile(regex);
    final var matchPredicate = pattern.asMatchPredicate();

    System.out.println(matchPredicate.test(input)); // false
}

static final int LITERAL

Permite el análisis literal del patrón. (Traducción automática)

final var regex = "abc+";
final var input1 = "abc+";
final var input2 = "abccc";

{
    final var pattern = Pattern.compile(regex, Pattern.LITERAL);
    final var matchPredicate = pattern.asMatchPredicate();

    System.out.println(matchPredicate.test(input1)); // true
    System.out.println(matchPredicate.test(input2)); // false
}

{
    final var pattern = Pattern.compile(regex);
    final var matchPredicate = pattern.asMatchPredicate();

    System.out.println(matchPredicate.test(input1)); // false
    System.out.println(matchPredicate.test(input2)); // true
}

static final int MULTILINE

Habilita el modo multilínea. (Traducción automática)

final var regex = "^abc$";
final var input1 = """
        012
        abc
        xyz
        """;
final var input2 = "abc";

{
    final var pattern = Pattern.compile(regex, Pattern.MULTILINE);
    final var predicate = pattern.asPredicate();

    System.out.println(predicate.test(input1)); // true
    System.out.println(predicate.test(input2)); // true
}

{
    final var pattern = Pattern.compile(regex);
    final var predicate = pattern.asPredicate();

    System.out.println(predicate.test(input1)); // false
    System.out.println(predicate.test(input2)); // true
}

static final int UNICODE_CASE

Permite el plegado de mayúsculas y minúsculas teniendo en cuenta Unicode. (Traducción automática)

// Full-width characters.
final var regex = "abc";
final var input = "ABC";

{
    final var pattern = Pattern.compile(regex,
            Pattern.UNICODE_CASE | Pattern.CASE_INSENSITIVE);
    final var matchPredicate = pattern.asMatchPredicate();

    System.out.println(matchPredicate.test(input)); // true
}

{
    final var pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
    final var matchPredicate = pattern.asMatchPredicate();

    System.out.println(matchPredicate.test(input)); // false
}

static final int UNICODE_CHARACTER_CLASS

Habilita la versión Unicode de las clases de caracteres predefinidos y las clases de caracteres POSIX. (Traducción automática)

final var regex = "\\p{Lower}+";

// Half-width characters.
final var input1 = "abc";

// Full-width characters.
final var input2 = "abc";

{
    final var pattern = Pattern.compile(regex, Pattern.UNICODE_CHARACTER_CLASS);
    final var matchPredicate = pattern.asMatchPredicate();

    System.out.println(matchPredicate.test(input1)); // true
    System.out.println(matchPredicate.test(input2)); // true
}

{
    final var pattern = Pattern.compile(regex);
    final var matchPredicate = pattern.asMatchPredicate();

    System.out.println(matchPredicate.test(input1)); // true
    System.out.println(matchPredicate.test(input2)); // false
}

static final int UNIX_LINES

Habilita el modo de líneas Unix. (Traducción automática)

final var regex = "^abc$";

final var input1 = "abc\r\nxyz";
final var input2 = "abc\nxyz";
final var input3 = "abc\rxyz";

{
    final var pattern = Pattern.compile(regex,
            Pattern.UNIX_LINES | Pattern.MULTILINE);
    final var predicate = pattern.asPredicate();

    System.out.println(predicate.test(input1)); // false
    System.out.println(predicate.test(input2)); // true
    System.out.println(predicate.test(input3)); // false
}

{
    final var pattern = Pattern.compile(regex, Pattern.MULTILINE);
    final var predicate = pattern.asPredicate();

    System.out.println(predicate.test(input1)); // true
    System.out.println(predicate.test(input2)); // true
    System.out.println(predicate.test(input3)); // true
}

Methods

Predicate<String> asMatchPredicate ()

Crea un predicado que prueba si este patrón coincide con una cadena de entrada determinada. (Traducción automática)

final var pattern = Pattern.compile("a+bc");

final var matchPredicate = pattern.asMatchPredicate();
final var predicate = pattern.asPredicate();

System.out.println(matchPredicate.test("aaabc")); // true
System.out.println(predicate.test("aaabc")); // true

System.out.println(matchPredicate.test("012 abc xyz")); // false
System.out.println(predicate.test("012 abc xyz")); // true

Predicate<String> asPredicate ()

Crea un predicado que prueba si este patrón se encuentra en una cadena de entrada determinada. (Traducción automática)

final var pattern = Pattern.compile("a+bc");

final var matchPredicate = pattern.asMatchPredicate();
final var predicate = pattern.asPredicate();

System.out.println(matchPredicate.test("aaabc")); // true
System.out.println(predicate.test("aaabc")); // true

System.out.println(matchPredicate.test("012 abc xyz")); // false
System.out.println(predicate.test("012 abc xyz")); // true

static Pattern compile (String regex)

Compila la expresión regular dada en un patrón. (Traducción automática)

final var pattern = Pattern.compile("a+bc");
final var matchPredicate = pattern.asMatchPredicate();

System.out.println(matchPredicate.test("abc")); // true
System.out.println(matchPredicate.test("aaaabc")); // true
System.out.println(matchPredicate.test("bc")); // false

static Pattern compile (String regex, int flags)

Compila la expresión regular dada en un patrón con las banderas dadas. (Traducción automática)

final var pattern = Pattern.compile("abc", Pattern.CASE_INSENSITIVE);
final var matchPredicate = pattern.asMatchPredicate();

System.out.println(matchPredicate.test("abc")); // true
System.out.println(matchPredicate.test("ABC")); // true
final var pattern = Pattern.compile("abc");
final var matchPredicate = pattern.asMatchPredicate();

System.out.println(matchPredicate.test("abc")); // true
System.out.println(matchPredicate.test("ABC")); // false

int flags ()

Devuelve los indicadores de coincidencia de este patrón. (Traducción automática)

final var pattern = Pattern.compile("abc", Pattern.LITERAL);

System.out.printf("%#x%n", Pattern.LITERAL); // 0x10
System.out.printf("%#x%n", pattern.flags()); // 0x10
final var pattern = Pattern.compile("abc",
        Pattern.UNICODE_CASE | Pattern.CASE_INSENSITIVE);

System.out.printf("%#x%n", Pattern.UNICODE_CASE); // 0x40
System.out.printf("%#x%n", Pattern.CASE_INSENSITIVE); // 0x2
System.out.printf("%#x%n", pattern.flags()); // 0x42

Matcher matcher (CharSequence input)

Crea un comparador que comparará la entrada dada con este patrón. (Traducción automática)

final var pattern = Pattern.compile("a+bc");
final var matcher = pattern.matcher("zyz aaaabc 012");

if (matcher.find()) {
    System.out.println(matcher.group()); // "aaaabc"
}

static boolean matches (String regex, CharSequence input)

Compila la expresión regular dada e intenta hacer coincidir la entrada dada con ella. (Traducción automática)

System.out.println(Pattern.matches("a+bc", "aaabc")); // true
System.out.println(Pattern.matches("a+bc", "aaabc xyz")); // false

System.out.println(Pattern.matches("[a-z]+", "abcxyz")); // true
System.out.println(Pattern.matches("[a-z]+", "0123")); // false

Map<String,Integer> namedGroups ()

Devuelve un mapa no modificable desde la captura de nombres de grupos hasta números de grupos. (Traducción automática)

final var pattern = Pattern.compile("(?<A>abc|efg)_012_(?<B>x..)");
System.out.println(pattern.namedGroups()); // {A=1, B=2}

String pattern ()

Devuelve la expresión regular a partir de la cual se compiló este patrón. (Traducción automática)

final var pattern = Pattern.compile("a+bc");
System.out.println(pattern.pattern()); // "a+bc"
final var pattern = Pattern.compile("[a-z]+");
System.out.println(pattern.pattern()); // "[a-z]+"

static String quote (String s)

Devuelve una cadena de patrón literal para la cadena especificada. (Traducción automática)

final var regex = "a+bc";

final var quote = Pattern.quote(regex);
System.out.println(quote); // "\Qa+bc\E"

final var pattern = Pattern.compile(quote);
final var matchPredicate = pattern.asMatchPredicate();

System.out.println(matchPredicate.test("a+bc")); // true
System.out.println(matchPredicate.test("aaabc")); // false

String[] split (CharSequence input)

Divide la secuencia de entrada dada en torno a las coincidencias de este patrón. (Traducción automática)

final var input = "boo:and:foo";

final var pattern = Pattern.compile(":");
final var ret = pattern.split(input);
System.out.println(Arrays.toString(ret)); // [boo, and, foo]
final var input = "boo:and:foo";
final var pattern = Pattern.compile("o");

final var ret = pattern.split(input);
System.out.println(Arrays.toString(ret)); // [b, , :and:f]

String[] split (CharSequence input, int limit)

Divide la secuencia de entrada dada en torno a las coincidencias de este patrón. (Traducción automática)

final var input = "boo:and:foo";
final var pattern = Pattern.compile(":");

final var ret1 = pattern.split(input, 2);
System.out.println(Arrays.toString(ret1)); // [boo, and:foo]

final var ret2 = pattern.split(input, 5);
System.out.println(Arrays.toString(ret2)); // [boo, and, foo]

final var ret3 = pattern.split(input, -2);
System.out.println(Arrays.toString(ret3)); // [boo, and, foo]
final var input = "boo:and:foo";
final var pattern = Pattern.compile("o");

final var ret1 = pattern.split(input, 5);
System.out.println(Arrays.toString(ret1)); // [b, , :and:f, , ]

final var ret2 = pattern.split(input, -2);
System.out.println(Arrays.toString(ret2)); // [b, , :and:f, , ]

final var ret3 = pattern.split(input, 0);
System.out.println(Arrays.toString(ret3)); // [b, , :and:f]

Stream<String> splitAsStream (CharSequence input)

Crea una secuencia a partir de la secuencia de entrada dada en torno a las coincidencias de este patrón. (Traducción automática)

final var input = "boo:and:foo";
final var pattern = Pattern.compile(":");
final var stream = pattern.splitAsStream(input);

stream.forEach(s -> {
    System.out.println(s);
});

// Result
// ↓
// "boo"
// "and"
// "foo"
final var input = "boo:and:foo";
final var pattern = Pattern.compile("o");
final var stream = pattern.splitAsStream(input);

stream.forEach(s -> {
    System.out.println(s);
});

// Result
// ↓
// "b"
// ""
// ":and:f"

String[] splitWithDelimiters (CharSequence input, int limit)

Divide la secuencia de entrada dada en torno a las coincidencias de este patrón y devuelve las cadenas y los delimitadores coincidentes. (Traducción automática)

final var input = "boo:and:foo";
final var pattern = Pattern.compile(":");

final var ret1 = pattern.splitWithDelimiters(input, 2);
System.out.println(Arrays.toString(ret1)); // [boo, :, and:foo]

final var ret2 = pattern.splitWithDelimiters(input, 5);
System.out.println(Arrays.toString(ret2)); // [boo, :, and, :, foo]

final var ret3 = pattern.splitWithDelimiters(input, -2);
System.out.println(Arrays.toString(ret3)); // [boo, :, and, :, foo]
final var input = "boo:and:foo";
final var pattern = Pattern.compile("o");

final var ret1 = pattern.splitWithDelimiters(input, 5);
System.out.println(Arrays.toString(ret1)); // [b, o, , o, :and:f, o, , o, ]

final var ret2 = pattern.splitWithDelimiters(input, -2);
System.out.println(Arrays.toString(ret2)); // [b, o, , o, :and:f, o, , o, ]

final var ret3 = pattern.splitWithDelimiters(input, 0);
System.out.println(Arrays.toString(ret3)); // [b, o, , o, :and:f, o, , o]

String toString ()

Devuelve la representación de cadena de este patrón. (Traducción automática)

final var pattern = Pattern.compile("a+bc");
final var str = pattern.toString();
System.out.println(str); // "a+bc"
final var pattern = Pattern.compile("[a-z]+");
final var str = pattern.toString();
System.out.println(str); // "[a-z]+"

Related posts

To top of page