Java : Matcher (regex) con ejemplos
Matcher (Java SE 22 & JDK 22) en Java con ejemplos.
Encontrará ejemplos de código en la mayoría de los métodos de Matcher.
Nota :
- Este artículo puede utilizar software de traducción para su comodidad. Consulte también la versión original en inglés.
Summary
Un motor que realiza operaciones de coincidencia en una secuencia de caracteres interpretando un patrón. (Traducción automática)
final var pattern = Pattern.compile("a+bc");
final var matcher = pattern.matcher("abc 012 aaabc");
// First match.
System.out.println(matcher.find()); // true
System.out.println(matcher.start()); // 0
System.out.println(matcher.end()); // 3
System.out.println(matcher.group()); // "abc"
// Next match.
System.out.println(matcher.find()); // true
System.out.println(matcher.start()); // 8
System.out.println(matcher.end()); // 13
System.out.println(matcher.group()); // "aaabc"
// No match.
System.out.println(matcher.find()); // false
final var pattern = Pattern.compile("a+bc");
final var matcher = pattern.matcher("abc 012 aaabc");
final var stream = matcher.results();
stream.forEach(matchResult -> {
System.out.println("------");
System.out.println("start : " + matchResult.start());
System.out.println("end : " + matchResult.end());
System.out.println("group : " + matchResult.group());
});
// Result
// ↓
//------
//start : 0
//end : 3
//group : abc
//------
//start : 8
//end : 13
//group : aaabc
Methods
Matcher appendReplacement (StringBuffer sb, String replacement)
Implementa un paso de agregar y reemplazar no terminal. (Traducción automática)
final var pattern = Pattern.compile("cat");
final var matcher = pattern.matcher("one cat two cats in the yard");
final var sb = new StringBuffer();
while (matcher.find()) {
matcher.appendReplacement(sb, "dog");
}
System.out.println(sb); // "one dog two dog"
matcher.appendTail(sb);
System.out.println(sb); // "one dog two dogs in the yard"
Matcher appendReplacement (StringBuilder sb, String replacement)
Implementa un paso de agregar y reemplazar no terminal. (Traducción automática)
final var pattern = Pattern.compile("cat");
final var matcher = pattern.matcher("one cat two cats in the yard");
final var sb = new StringBuilder();
while (matcher.find()) {
matcher.appendReplacement(sb, "dog");
}
System.out.println(sb); // "one dog two dog"
matcher.appendTail(sb);
System.out.println(sb); // "one dog two dogs in the yard"
StringBuffer appendTail (StringBuffer sb)
Implementa un paso de agregar y reemplazar terminal. (Traducción automática)
final var pattern = Pattern.compile("cat");
final var matcher = pattern.matcher("one cat two cats in the yard");
final var sb = new StringBuffer();
while (matcher.find()) {
matcher.appendReplacement(sb, "dog");
}
System.out.println(sb); // "one dog two dog"
matcher.appendTail(sb);
System.out.println(sb); // "one dog two dogs in the yard"
StringBuilder appendTail (StringBuilder sb)
Implementa un paso de agregar y reemplazar terminal. (Traducción automática)
final var pattern = Pattern.compile("cat");
final var matcher = pattern.matcher("one cat two cats in the yard");
final var sb = new StringBuilder();
while (matcher.find()) {
matcher.appendReplacement(sb, "dog");
}
System.out.println(sb); // "one dog two dog"
matcher.appendTail(sb);
System.out.println(sb); // "one dog two dogs in the yard"
int end ()
Devuelve el desplazamiento después del último carácter coincidente. (Traducción automática)
final var pattern = Pattern.compile("a+bc");
final var input = "aaaaabc";
final var matcher = pattern.matcher(input);
System.out.println(matcher.matches()); // true
final var start = matcher.start();
System.out.println(start); // 0
final var end = matcher.end();
System.out.println(end); // 7
final var group = input.substring(start, end);
System.out.println(group); // "aaaaabc"
final var pattern = Pattern.compile("a+bc");
final var input = "012abcXYZ";
final var matcher = pattern.matcher(input);
System.out.println(matcher.find()); // true
final var start = matcher.start();
System.out.println(start); // 3
final var end = matcher.end();
System.out.println(end); // 6
final var group = input.substring(start, end);
System.out.println(group); // "abc"
int end (int group)
Devuelve el desplazamiento después del último carácter de la subsecuencia capturada por el grupo dado durante la operación de coincidencia anterior. (Traducción automática)
final var pattern = Pattern.compile("(abc|efg)_012_(x..)");
final var matcher = pattern.matcher("abc_012_xyz");
System.out.println(matcher.matches()); // true
System.out.println(matcher.start()); // 0
System.out.println(matcher.end()); // 11
System.out.println(matcher.group()); // "abc_012_xyz"
final var groupCount = matcher.groupCount();
System.out.println(groupCount); // 2
for (int i = 1; i <= groupCount; i++) {
System.out.println("------");
System.out.println("i : " + i);
System.out.println("start : " + matcher.start(i));
System.out.println("end : " + matcher.end(i));
System.out.println("group : " + matcher.group(i));
}
// Result
// ↓
//------
//i : 1
//start : 0
//end : 3
//group : abc
//------
//i : 2
//start : 8
//end : 11
//group : xyz
int end (String name)
Devuelve el desplazamiento después del último carácter de la subsecuencia capturada por el grupo de captura nombrado dado durante la operación de coincidencia anterior. (Traducción automática)
final var pattern = Pattern.compile("(?<A>abc|efg)_012_(?<B>x..)");
final var matcher = pattern.matcher("abc_012_xyz");
System.out.println(matcher.matches()); // true
final var result = matcher.toMatchResult();
System.out.println(result.start()); // 0
System.out.println(result.end()); // 11
System.out.println(result.group()); // "abc_012_xyz"
{
final var name = "A";
System.out.println(matcher.start(name)); // 0
System.out.println(matcher.end(name)); // 3
System.out.println(matcher.group(name)); // "abc"
}
{
final var name = "B";
System.out.println(matcher.start(name)); // 8
System.out.println(matcher.end(name)); // 11
System.out.println(matcher.group(name)); // "xyz"
}
boolean find ()
Intenta encontrar la siguiente subsecuencia de la secuencia de entrada que coincide con el patrón. (Traducción automática)
final var pattern = Pattern.compile("a+bc");
final var matcher = pattern.matcher("abc 012 aaabc");
System.out.println(matcher.hasMatch()); // false
{
System.out.println(matcher.find()); // true
System.out.println(matcher.hasMatch()); // true
final var result = matcher.toMatchResult();
System.out.println(result.start()); // 0
System.out.println(result.end()); // 3
System.out.println(result.group()); // "abc"
}
{
System.out.println(matcher.find()); // true
System.out.println(matcher.hasMatch()); // true
final var result = matcher.toMatchResult();
System.out.println(result.start()); // 8
System.out.println(result.end()); // 13
System.out.println(result.group()); // "aaabc"
}
System.out.println(matcher.find()); // false
System.out.println(matcher.hasMatch()); // false
boolean find (int start)
Restablece este comparador y luego intenta encontrar la siguiente subsecuencia de la secuencia de entrada que coincida con el patrón, comenzando en el índice especificado. (Traducción automática)
final var pattern = Pattern.compile("a+bc");
final var matcher = pattern.matcher("012 abc xyz aaabc");
{
System.out.println(matcher.find(8)); // true
final var result = matcher.toMatchResult();
System.out.println(result.start()); // 12
System.out.println(result.end()); // 17
System.out.println(result.group()); // "aaabc"
}
{
System.out.println(matcher.find(1)); // true
final var result = matcher.toMatchResult();
System.out.println(result.start()); // 4
System.out.println(result.end()); // 7
System.out.println(result.group()); // "abc"
}
String group ()
Devuelve la subsecuencia de entrada que coincide con la coincidencia anterior. (Traducción automática)
final var pattern = Pattern.compile("a+bc");
final var matcher = pattern.matcher("abc 012 aaabc xyz");
System.out.println(matcher.find()); // true
System.out.println(matcher.group()); // "abc"
System.out.println(matcher.find()); // true
System.out.println(matcher.group()); // "aaabc"
System.out.println(matcher.find()); // false
String group (int group)
Devuelve la subsecuencia de entrada capturada por el grupo dado durante la operación de coincidencia anterior. (Traducción automática)
final var pattern = Pattern.compile("(abc|efg)_012_(x..)");
final var matcher = pattern.matcher("abc_012_xyz");
System.out.println(matcher.matches()); // true
System.out.println(matcher.start()); // 0
System.out.println(matcher.end()); // 11
System.out.println(matcher.group()); // "abc_012_xyz"
final var groupCount = matcher.groupCount();
System.out.println(groupCount); // 2
for (int i = 1; i <= groupCount; i++) {
System.out.println("------");
System.out.println("i : " + i);
System.out.println("start : " + matcher.start(i));
System.out.println("end : " + matcher.end(i));
System.out.println("group : " + matcher.group(i));
}
// Result
// ↓
//------
//i : 1
//start : 0
//end : 3
//group : abc
//------
//i : 2
//start : 8
//end : 11
//group : xyz
String group (String name)
Devuelve la subsecuencia de entrada capturada por el grupo de captura nombrado dado durante la operación de coincidencia anterior. (Traducción automática)
final var pattern = Pattern.compile("(?<A>abc|efg)_012_(?<B>x..)");
final var matcher = pattern.matcher("abc_012_xyz");
System.out.println(matcher.matches()); // true
final var result = matcher.toMatchResult();
System.out.println(result.start()); // 0
System.out.println(result.end()); // 11
System.out.println(result.group()); // "abc_012_xyz"
{
final var name = "A";
System.out.println(matcher.start(name)); // 0
System.out.println(matcher.end(name)); // 3
System.out.println(matcher.group(name)); // "abc"
}
{
final var name = "B";
System.out.println(matcher.start(name)); // 8
System.out.println(matcher.end(name)); // 11
System.out.println(matcher.group(name)); // "xyz"
}
int groupCount ()
Devuelve el número de grupos de captura en el patrón de este comparador. (Traducción automática)
final var pattern = Pattern.compile("(abc|efg)_012_(x..)");
final var matcher = pattern.matcher("abc_012_xyz");
System.out.println(matcher.matches()); // true
System.out.println(matcher.start()); // 0
System.out.println(matcher.end()); // 11
System.out.println(matcher.group()); // "abc_012_xyz"
final var groupCount = matcher.groupCount();
System.out.println(groupCount); // 2
for (int i = 1; i <= groupCount; i++) {
System.out.println("------");
System.out.println("i : " + i);
System.out.println("start : " + matcher.start(i));
System.out.println("end : " + matcher.end(i));
System.out.println("group : " + matcher.group(i));
}
// Result
// ↓
//------
//i : 1
//start : 0
//end : 3
//group : abc
//------
//i : 2
//start : 8
//end : 11
//group : xyz
boolean hasAnchoringBounds ()
Consulta el anclaje de los límites de la región para este comparador. (Traducción automática)
final var pattern = Pattern.compile("^abc xyz$");
final var input = "012 abc xyz";
{
final var matcher = pattern.matcher(input);
System.out.println(matcher.hasAnchoringBounds()); // true
// Sets the limits of this matcher's region.
System.out.println(input.substring(4, 11)); // "abc xyz"
matcher.region(4, 11);
System.out.println(matcher.find()); // true
final var result = matcher.toMatchResult();
System.out.println(result.start()); // 4
System.out.println(result.end()); // 11
System.out.println(result.group()); // "abc xyz"
}
{
final var matcher = pattern.matcher(input);
matcher.useAnchoringBounds(false);
System.out.println(matcher.hasAnchoringBounds()); // false
matcher.region(4, 11);
System.out.println(matcher.find()); // false
}
boolean hasMatch ()
Devuelve si contiene una coincidencia válida de una operación de búsqueda o coincidencia anterior. (Traducción automática)
final var pattern = Pattern.compile("a+bc");
final var matcher = pattern.matcher("abc 012 aaabc");
System.out.println(matcher.hasMatch()); // false
{
System.out.println(matcher.find()); // true
System.out.println(matcher.hasMatch()); // true
final var result = matcher.toMatchResult();
System.out.println(result.start()); // 0
System.out.println(result.end()); // 3
System.out.println(result.group()); // "abc"
}
{
System.out.println(matcher.find()); // true
System.out.println(matcher.hasMatch()); // true
final var result = matcher.toMatchResult();
System.out.println(result.start()); // 8
System.out.println(result.end()); // 13
System.out.println(result.group()); // "aaabc"
}
System.out.println(matcher.find()); // false
System.out.println(matcher.hasMatch()); // false
boolean hasTransparentBounds ()
Consulta la transparencia de los límites de la región para este comparador. (Traducción automática)
final var pattern = Pattern.compile("\\by...");
final var input = "xyz12 yz34";
{
final var matcher = pattern.matcher(input);
System.out.println(matcher.hasTransparentBounds()); // false
// Sets the limits of this matcher's region.
System.out.println(input.substring(1, 10)); // "yz12 yz34"
matcher.region(1, 10);
System.out.println(matcher.find()); // true
final var result = matcher.toMatchResult();
System.out.println(result.group()); // "yz12"
}
{
final var matcher = pattern.matcher(input);
matcher.useTransparentBounds(true);
System.out.println(matcher.hasTransparentBounds()); // true
matcher.region(1, 10);
// This matcher to use transparent bounds.
System.out.println(matcher.find()); // true
final var result = matcher.toMatchResult();
System.out.println(result.group()); // "yz34"
}
boolean hitEnd ()
Devuelve verdadero si el motor de búsqueda alcanzó el final de la entrada en la última operación de coincidencia realizada por este comparador. (Traducción automática)
final var pattern = Pattern.compile("cat");
final var matcher = pattern.matcher("one cat two cats in the yard");
while (matcher.find()) {
System.out.println("-------");
System.out.println("hitEnd : " + matcher.hitEnd());
final var result = matcher.toMatchResult();
System.out.println("start : " + result.start());
System.out.println("end : " + result.end());
}
// Result
// ↓
//-------
//hitEnd : false
//start : 4
//end : 7
//-------
//hitEnd : false
//start : 12
//end : 15
System.out.println(matcher.hitEnd()); // true
boolean lookingAt ()
Intenta hacer coincidir la secuencia de entrada, comenzando desde el principio de la región, con el patrón. (Traducción automática)
final var pattern = Pattern.compile("a+bc");
final var matcher = pattern.matcher("aaabc");
System.out.println(matcher.lookingAt()); // true
final var result = matcher.toMatchResult();
System.out.println(result.start()); // 0
System.out.println(result.end()); // 5
System.out.println(result.group()); // "aaabc"
final var pattern = Pattern.compile("a+bc");
final var matcher = pattern.matcher("abcXYZ");
System.out.println(matcher.lookingAt()); // true
final var result = matcher.toMatchResult();
System.out.println(result.start()); // 0
System.out.println(result.end()); // 3
System.out.println(result.group()); // "abc"
final var pattern = Pattern.compile("a+bc");
final var matcher = pattern.matcher("012abc");
System.out.println(matcher.lookingAt()); // false
boolean matches ()
Intenta hacer coincidir toda la región con el patrón. (Traducción automática)
final var pattern = Pattern.compile("a+bc");
final var matcher = pattern.matcher("abc");
System.out.println(matcher.matches()); // true
final var result = matcher.toMatchResult();
System.out.println(result.start()); // 0
System.out.println(result.end()); // 3
System.out.println(result.group()); // "abc"
final var pattern = Pattern.compile("a+bc");
final var matcher = pattern.matcher("aaaaabc");
System.out.println(matcher.matches()); // true
final var result = matcher.toMatchResult();
System.out.println(result.start()); // 0
System.out.println(result.end()); // 7
System.out.println(result.group()); // "aaaaabc"
final var pattern = Pattern.compile("a+bc");
final var matcher = pattern.matcher("012abc");
System.out.println(matcher.matches()); // false
final var pattern = Pattern.compile("a+bc");
final var matcher = pattern.matcher("abcZ");
System.out.println(matcher.matches()); // 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..)");
final var matcher = pattern.matcher("abc_012_xyz");
System.out.println(matcher.matches()); // true
System.out.println("-- groups --");
for (final var entry : matcher.namedGroups().entrySet()) {
System.out.println("entry : " + entry);
final var num = entry.getValue();
System.out.println(" group : " + matcher.group(num));
}
// Result
// ↓
//true
//-- groups --
//entry : A=1
// group : abc
//entry : B=2
// group : xyz
Pattern pattern ()
Devuelve el patrón que interpreta este comparador. (Traducción automática)
final var pattern = Pattern.compile("a+bc");
final var matcher = pattern.matcher("aaabc");
System.out.println(matcher.pattern()); // "a+bc"
static String quoteReplacement (String s)
Devuelve una cadena de reemplazo literal para la cadena especificada. (Traducción automática)
final var pattern = Pattern.compile(" ");
final var matcher = pattern.matcher("abc 012 xyz");
final var replacement = Matcher.quoteReplacement("$");
System.out.println(replacement); // "\$"
final var ret = matcher.replaceAll(replacement);
System.out.println(ret); // "abc$012$xyz"
Matcher region (int start, int end)
Establece los límites de la región de este comparador. (Traducción automática)
final var pattern = Pattern.compile("a+bc+");
final var input = "aaabccc";
final var matcher = pattern.matcher(input);
System.out.println(input.substring(2, 6)); // "abcc"
matcher.region(2, 6);
System.out.println(matcher.regionStart()); // 2
System.out.println(matcher.regionEnd()); // 6
System.out.println(matcher.matches()); // true
final var result = matcher.toMatchResult();
System.out.println(result.group()); // "abcc"
// An example without the region method.
final var pattern = Pattern.compile("a+bc+");
final var matcher = pattern.matcher("aaabccc");
System.out.println(matcher.matches()); // true
final var result = matcher.toMatchResult();
System.out.println(result.group()); // "aaabccc"
int regionEnd ()
Informa el índice final (exclusivo) de la región de este comparador. (Traducción automática)
final var pattern = Pattern.compile("a+bc+");
final var input = "aaabccc";
final var matcher = pattern.matcher(input);
System.out.println(input.substring(2, 6)); // "abcc"
matcher.region(2, 6);
System.out.println(matcher.regionStart()); // 2
System.out.println(matcher.regionEnd()); // 6
System.out.println(matcher.matches()); // true
final var result = matcher.toMatchResult();
System.out.println(result.group()); // "abcc"
// An example without the region method.
final var pattern = Pattern.compile("a+bc+");
final var matcher = pattern.matcher("aaabccc");
System.out.println(matcher.matches()); // true
final var result = matcher.toMatchResult();
System.out.println(result.group()); // "aaabccc"
int regionStart ()
Informa el índice de inicio de la región de este comparador. (Traducción automática)
final var pattern = Pattern.compile("a+bc+");
final var input = "aaabccc";
final var matcher = pattern.matcher(input);
System.out.println(input.substring(2, 6)); // "abcc"
matcher.region(2, 6);
System.out.println(matcher.regionStart()); // 2
System.out.println(matcher.regionEnd()); // 6
System.out.println(matcher.matches()); // true
final var result = matcher.toMatchResult();
System.out.println(result.group()); // "abcc"
// An example without the region method.
final var pattern = Pattern.compile("a+bc+");
final var matcher = pattern.matcher("aaabccc");
System.out.println(matcher.matches()); // true
final var result = matcher.toMatchResult();
System.out.println(result.group()); // "aaabccc"
String replaceAll (String replacement)
Reemplaza cada subsecuencia de la secuencia de entrada que coincida con el patrón con la cadena de reemplazo dada. (Traducción automática)
final var pattern = Pattern.compile("a*b");
final var matcher = pattern.matcher("aabfooaabfooabfoob");
final var result = matcher.replaceAll("-");
System.out.println(result); // "-foo-foo-foo-"
String replaceAll (Function<MatchResult,String> replacer)
Reemplaza cada subsecuencia de la secuencia de entrada que coincide con el patrón con el resultado de aplicar la función de reemplazo dada al resultado de coincidencia de este comparador correspondiente a esa subsecuencia. (Traducción automática)
final var pattern = Pattern.compile("dog");
final var matcher = pattern.matcher("zzzdogzzzdogzzz");
final var result = matcher.replaceAll(mr -> mr.group().toUpperCase());
System.out.println(result); // "zzzDOGzzzDOGzzz"
String replaceFirst (String replacement)
Reemplaza la primera subsecuencia de la secuencia de entrada que coincide con el patrón con la cadena de reemplazo dada. (Traducción automática)
final var pattern = Pattern.compile("dog");
final var matcher = pattern.matcher("zzzdogzzzdogzzz");
final var result = matcher.replaceFirst("cat");
System.out.println(result); // "zzzcatzzzdogzzz"
String replaceFirst (Function<MatchResult,String> replacer)
Reemplaza la primera subsecuencia de la secuencia de entrada que coincide con el patrón con el resultado de aplicar la función de reemplazo dada al resultado de coincidencia de este comparador correspondiente a esa subsecuencia. (Traducción automática)
final var pattern = Pattern.compile("dog");
final var matcher = pattern.matcher("zzzdogzzzdogzzz");
final var result = matcher.replaceFirst(mr -> mr.group().toUpperCase());
System.out.println(result); // "zzzDOGzzzdogzzz"
boolean requireEnd ()
Devuelve verdadero si una entrada mayor podría convertir una coincidencia positiva en una negativa. (Traducción automática)
final var pattern = Pattern.compile("abc$");
final var matcher = pattern.matcher("abc");
System.out.println(matcher.find()); // true
System.out.println(matcher.group()); // "abc"
System.out.println(matcher.requireEnd()); // true
final var pattern = Pattern.compile("abc");
final var matcher = pattern.matcher("abcd");
System.out.println(matcher.find()); // true
System.out.println(matcher.group()); // "abc"
System.out.println(matcher.requireEnd()); // false
Matcher reset ()
Restablece este comparador. (Traducción automática)
final var pattern = Pattern.compile("a+bc");
final var matcher = pattern.matcher("abc aabc");
System.out.println(matcher.find()); // true
System.out.println(matcher.group()); // "abc"
System.out.println(matcher.find()); // true
System.out.println(matcher.group()); // "aabc"
System.out.println(matcher.find()); // false
matcher.reset();
System.out.println(matcher.find()); // true
System.out.println(matcher.group()); // "abc"
System.out.println(matcher.find()); // true
System.out.println(matcher.group()); // "aabc"
System.out.println(matcher.find()); // false
Matcher reset (CharSequence input)
Restablece este comparador con una nueva secuencia de entrada. (Traducción automática)
final var pattern = Pattern.compile("a+bc");
final var matcher = pattern.matcher("abc aabc");
System.out.println(matcher.find()); // true
System.out.println(matcher.group()); // "abc"
System.out.println(matcher.find()); // true
System.out.println(matcher.group()); // "aabc"
System.out.println(matcher.find()); // false
matcher.reset("aaaabc");
System.out.println(matcher.find()); // true
System.out.println(matcher.group()); // "aaaabc"
System.out.println(matcher.find()); // false
Stream<MatchResult> results ()
Devuelve un flujo de resultados de coincidencia para cada subsecuencia de la secuencia de entrada que coincide con el patrón. (Traducción automática)
final var pattern = Pattern.compile("a+bc");
final var matcher = pattern.matcher("abc 012 aabc");
final var stream = matcher.results();
stream.forEach(matchResult -> {
System.out.println(matchResult.group());
});
// Result
// ↓
// "abc"
// "aabc"
int start ()
Devuelve el índice de inicio de la coincidencia anterior. (Traducción automática)
final var pattern = Pattern.compile("a+bc");
final var input = "aaaaabc";
final var matcher = pattern.matcher(input);
System.out.println(matcher.matches()); // true
final var start = matcher.start();
System.out.println(start); // 0
final var end = matcher.end();
System.out.println(end); // 7
final var group = input.substring(start, end);
System.out.println(group); // "aaaaabc"
final var pattern = Pattern.compile("a+bc");
final var input = "012abcXYZ";
final var matcher = pattern.matcher(input);
System.out.println(matcher.find()); // true
final var start = matcher.start();
System.out.println(start); // 3
final var end = matcher.end();
System.out.println(end); // 6
final var group = input.substring(start, end);
System.out.println(group); // "abc"
int start (int group)
Devuelve el índice de inicio de la subsecuencia capturada por el grupo dado durante la operación de coincidencia anterior. (Traducción automática)
final var pattern = Pattern.compile("(abc|efg)_012_(x..)");
final var matcher = pattern.matcher("abc_012_xyz");
System.out.println(matcher.matches()); // true
System.out.println(matcher.start()); // 0
System.out.println(matcher.end()); // 11
System.out.println(matcher.group()); // "abc_012_xyz"
final var groupCount = matcher.groupCount();
System.out.println(groupCount); // 2
for (int i = 1; i <= groupCount; i++) {
System.out.println("------");
System.out.println("i : " + i);
System.out.println("start : " + matcher.start(i));
System.out.println("end : " + matcher.end(i));
System.out.println("group : " + matcher.group(i));
}
// Result
// ↓
//------
//i : 1
//start : 0
//end : 3
//group : abc
//------
//i : 2
//start : 8
//end : 11
//group : xyz
int start (String name)
Devuelve el índice de inicio de la subsecuencia capturada por el grupo de captura nombrado dado durante la operación de coincidencia anterior. (Traducción automática)
final var pattern = Pattern.compile("(?<A>abc|efg)_012_(?<B>x..)");
final var matcher = pattern.matcher("abc_012_xyz");
System.out.println(matcher.matches()); // true
final var result = matcher.toMatchResult();
System.out.println(result.start()); // 0
System.out.println(result.end()); // 11
System.out.println(result.group()); // "abc_012_xyz"
{
final var name = "A";
System.out.println(matcher.start(name)); // 0
System.out.println(matcher.end(name)); // 3
System.out.println(matcher.group(name)); // "abc"
}
{
final var name = "B";
System.out.println(matcher.start(name)); // 8
System.out.println(matcher.end(name)); // 11
System.out.println(matcher.group(name)); // "xyz"
}
MatchResult toMatchResult ()
Devuelve el estado de coincidencia de este comparador como MatchResult. (Traducción automática)
final var pattern = Pattern.compile("a+bc");
final var matcher = pattern.matcher("abc aabc");
{
System.out.println(matcher.find()); // true
final var result = matcher.toMatchResult();
System.out.println(result.start()); // 0
System.out.println(result.end()); // 3
System.out.println(result.group()); // "abc"
}
{
System.out.println(matcher.find()); // true
final var result = matcher.toMatchResult();
System.out.println(result.start()); // 4
System.out.println(result.end()); // 8
System.out.println(result.group()); // "aabc"
}
String toString ()
Devuelve la representación de cadena de este comparador. (Traducción automática)
final var pattern = Pattern.compile("a+bc");
final var matcher = pattern.matcher("abc aabc");
System.out.println(matcher.find()); // true
final var str = matcher.toString();
// java.util.regex.Matcher[pattern=a+bc region=0,8 lastmatch=abc]
System.out.println(str);
Matcher useAnchoringBounds (boolean b)
Establece el anclaje de los límites de la región para este comparador. (Traducción automática)
final var pattern = Pattern.compile("^abc xyz$");
final var input = "012 abc xyz";
{
final var matcher = pattern.matcher(input);
System.out.println(matcher.hasAnchoringBounds()); // true
// Sets the limits of this matcher's region.
System.out.println(input.substring(4, 11)); // "abc xyz"
matcher.region(4, 11);
System.out.println(matcher.find()); // true
final var result = matcher.toMatchResult();
System.out.println(result.start()); // 4
System.out.println(result.end()); // 11
System.out.println(result.group()); // "abc xyz"
}
{
final var matcher = pattern.matcher(input);
matcher.useAnchoringBounds(false);
System.out.println(matcher.hasAnchoringBounds()); // false
matcher.region(4, 11);
System.out.println(matcher.find()); // false
}
Matcher usePattern (Pattern newPattern)
Cambia el patrón que este comparador utiliza para encontrar coincidencias. (Traducción automática)
final var pattern = Pattern.compile("a+bc");
final var matcher = pattern.matcher("aabc xyz");
System.out.println(matcher.find()); // true
System.out.println(matcher.group()); // "aabc"
System.out.println(matcher.find()); // false
matcher.usePattern(Pattern.compile("x.."));
System.out.println(matcher.find()); // true
System.out.println(matcher.group()); // "xyz"
Matcher useTransparentBounds (boolean b)
Establece la transparencia de los límites de la región para este comparador. (Traducción automática)
final var pattern = Pattern.compile("\\by...");
final var input = "xyz12 yz34";
{
final var matcher = pattern.matcher(input);
System.out.println(matcher.hasTransparentBounds()); // false
// Sets the limits of this matcher's region.
System.out.println(input.substring(1, 10)); // "yz12 yz34"
matcher.region(1, 10);
System.out.println(matcher.find()); // true
final var result = matcher.toMatchResult();
System.out.println(result.group()); // "yz12"
}
{
final var matcher = pattern.matcher(input);
matcher.useTransparentBounds(true);
System.out.println(matcher.hasTransparentBounds()); // true
matcher.region(1, 10);
// This matcher to use transparent bounds.
System.out.println(matcher.find()); // true
final var result = matcher.toMatchResult();
System.out.println(result.group()); // "yz34"
}
Related posts
- Ejemplos de API