Muitos motores regulares apóiam o agrupamento nomeado. Java apresentou esse recurso em Java7. A sintaxe é semelhante ao .NET (.NET permite que os agrupamentos com o mesmo nome apareçam na mesma expressão, mas Java não).
Nomear um grupo é fácil de entender, significa nomear o grupo. Abaixo está uma breve demonstração de como usar e precauções em Java.
1. Defina um grupo chamado nome regularmente
(? <name> x)
Aqui x é o conteúdo que queremos corresponder. Observe que o nome não pode ser repetido nisso e o nome não pode começar com um número!
2. Referências do conteúdo correspondente pelo grupo de nomes
/k <nome>
Observe que as backreferências são para o que o grupo corresponde, não para a expressão do grupo.
3. Em substituição, consulte a string capturada no nome do grupo
$ {Nome}
4. Pegue a string capturada pelo grupo de nomes
grupo (nome da string)
Nota: Você também pode usar números de sequência para referenciar capturas nomeadas. Os números de sequência começam de 1 e 0 é o resultado completo correspondente do regular.
Aqui está uma regra simples para obter o ano, mês e dia separadamente como exemplo:
String S = "2015-10-26"; Padrão p = padrão.compile ("(? <ear> // d {4})-(? <Mês> // d {2})-(? <Day> // d {2})"); Matcher M = P.Matcher (S); if (m.find ()) {System.out.println ("Ano:" + M.Group ("ano")); // ano system.out.println ("mês:" + m.group ("mês")); // mês system.out.println ("dia:" + m.group ("dia")); // Daily System.out.println ("Ano:" + M.Group (1)); // o primeiro grupo de system.out.println ("mês:" + m.group (2)); // o segundo grupo de system.out.println ("dia:" + m.group (3)); // O terceiro grupo} System.out.println (S.ReplaceAll ("(? // Alterar a data do formulário do mês do mês para o formulário do dia do dia Resultado de saída
Ano: 2015 meses: 10day: 26 anos: 2015 meses: 10day: 2626-10-2015
O exposto acima é tudo sobre este artigo, espero que seja útil para o aprendizado de todos.