Muchos motores regulares apoyan la agrupación. Java introdujo esta función en Java7. La sintaxis es similar a .NET (.NET permite que los agrupaciones con el mismo nombre aparezcan en la misma expresión, pero Java no).
Nombrar un grupo es fácil de entender, significa nombrar al grupo. A continuación se muestra una breve demostración de cómo usar y precauciones en Java.
1. Defina un grupo llamado Nombre en el Regular
(? <Nombre> x)
Aquí X es el contenido que queremos coincidir. Tenga en cuenta que el nombre no se puede repetir en esto, ¡y el nombre no puede comenzar con un número!
2. Backreferencias al contenido coincidente por el grupo de nombre
/K <Nombre>
Tenga en cuenta que las backreferencias son para lo que el grupo coincide, no para la expresión del grupo.
3. En reemplazo, consulte la cadena capturada en el nombre del grupo
$ {Nombre}
4. Obtenga la cadena capturada por el grupo de nombre
grupo (nombre de cadena)
Nota: También puede usar números de secuencia para referencia a capturas nombradas. Los números de secuencia comienzan a partir de 1 y 0 es el resultado coincidente completo del regular.
Aquí hay una regla simple para obtener el año, mes y día por separado como ejemplo:
Cadena S = "2015-10-26"; Patrón P = Pattern.Compile ("(? <Año> // d {4})-(? <Mes> // d {2})-(? <day> // d {2})"); Matcher M = p.matcher (s); if (m.find ()) {system.out.println ("año:" + m.group ("año")); // año sistema.out.println ("mes:" + m.group ("mes")); // mes System.out.println ("Día:" + M.Group ("Día")); // Daily System.out.println ("Año:" + M.Group (1)); // el primer grupo de System.out.println ("Mes:" + M.Group (2)); // El segundo grupo de System.out.println ("Día:" + M.Group (3)); // El tercer grupo} system.out.println (s.replaceall ("(? <dive> // d {4})-(? <Mes> // d {2})-(? <day> // d {2})", "$ {día}-$ {mes}-$ {año}"); // Cambiar la fecha del formulario del año y el día del día al formulario diurno de año Resultado de salida
Año: 2015 Month: 10day: 26 años: 2015 Month: 10day: 2626-10-2015
Lo anterior se trata de este artículo, espero que sea útil para el aprendizaje de todos.