Grupo Regex sem captura

Resumo : neste tutorial, você aprenderá sobre grupos sem captura de regex e como usá-los para evitar sobrecarga desnecessária.

Introdução ao grupo Regex sem captura

Um grupo de captura corresponde a um padrão e armazena um resultado de correspondência em grupos correspondentes. Para criar um grupo de captura, você coloca um padrão entre parênteses ()como este:

(P)Linguagem de código:  C#  ( cs )

Nesta sintaxe, o mecanismo regex corresponde ao padrão Pe armazena o resultado da correspondência dentro de grupos, que você pode acessar através da Groupspropriedade do Matchobjeto.

Em algumas situações, você deseja criar um grupo, mas não deseja capturar o resultado da partida. Para fazer isso, você usa um grupo sem captura com a seguinte sintaxe:

(?:P)Linguagem de código:  C#  ( cs )

Quando você usa um grupo sem captura, o mecanismo regex corresponde ao padrão P, mas não armazena o resultado da correspondência no arquivo Groups.

Grupos sem captura são úteis quando você deseja criar um grupo e aplicar quantificadores , alternâncias ou outras operações a um grupo de padrões, mas não deseja capturá-los.

Grupos sem captura também ajudam você a escrever expressões regulares que evitam sobrecarga desnecessária do grupo de captura.

Exemplo de grupo Regex sem captura

O exemplo a seguir usa um grupo sem captura para corresponder a um código de cores no formato ou :"#RRGGBB""0xRRGGBB"

using System.Text.RegularExpressions;
using static System.Console;


var text = "My favorite color is #00FF00.";
var pattern = @"(?:#|0x)([A-Fa-f0-9]{6})";

var match = Regex.Match(text, pattern);

if (match.Success)
{

    WriteLine($"Your favorite color code is {match.Groups[1].Value}");
}Linguagem de código:  C#  ( cs )

Saída:

Your favorite color code is 00FF00Linguagem de código:  C#  ( cs )

No padrão de expressão regular (?:#|0x)([A-Fa-f0-9]{6}):

  • O grupo sem captura (?:#|0x)corresponde ao #símbolo “ ” ou ao 0xprefixo “”.
  • O grupo de captura ([A-Fa-f0-9]{6})captura o código de cores real.

Resumo

  • Use grupos sem captura para agrupar padrões sem capturar as substrings correspondentes.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *