Resumo : neste tutorial, você aprenderá sobre conjuntos e intervalos de regex para criar padrões que correspondam a caracteres em um conjunto de caracteres.
Conjuntos
Ao colocar alguns caracteres entre colchetes []
, você cria um conjunto. Por exemplo, o [aeiou]
conjunto corresponde a qualquer caractere de vogal minúscula.
Normalmente, um conjunto pode ser usado com caracteres regulares. Além disso, um conjunto pode conter vários caracteres, cada caractere dentro de um conjunto corresponde a apenas um caractere na partida.
Por exemplo, licen[cs]e
o padrão corresponde a ambos licence
e license
conforme mostrado no exemplo a seguir:
using System.Text.RegularExpressions;
using static System.Console;
var text = "A licence or license";
var pattern = @"licen[cs]e";
var matches = Regex.Matches(text, pattern);
foreach (var match in matches)
{
WriteLine(match);
}
Linguagem de código: C# ( cs )
Saída:
licence
license
Linguagem de código: C# ( cs )
Gamas
Quando um conjunto tem muitos caracteres, por exemplo, de a a z, você não deseja listá-los todos entre colchetes. Em vez disso, você usa um intervalo de caracteres ( -
) como este:
[a-z]
Linguagem de código: C# ( cs )
O [a-z]
1 é chamado de intervalo que corresponde a qualquer caractere de a
até z
. Da mesma forma, você pode definir um intervalo de números de 0 a 9 da seguinte forma:
[0-9]
Linguagem de código: C# ( cs )
Para definir vários intervalos, você pode colocá-los um ao lado do outro entre colchetes. Por exemplo:
[a-z0-9]
Linguagem de código: C# ( cs )
O intervalo [a-z0-9]
corresponde a qualquer caractere de a
to z
e 0
to 9
.
O exemplo a seguir usa os intervalos de regex para definir um padrão que corresponda à sequência de tempo no formato hh:mm
:
using System.Text.RegularExpressions;
using static System.Console;
var text = "12:30 15:60";
var pattern = @"\b[0-2][0-9]:[0-5][0-9]\b";
var matches = Regex.Matches(text, pattern);
foreach (var match in matches)
{
WriteLine(match);
}
Linguagem de código: C# ( cs )
Saída:
12:30
Linguagem de código: C# ( cs )
O padrão
Esse padrão \b[0-2][0-9]:[0-5][0-9]\b
corresponde ao formato da hora hh:mm
, onde a hora pode estar no intervalo de 00 a 23 e o minuto pode estar no intervalo de 00 a 59.
Excluindo conjuntos e intervalos
Expressões regulares usam o caractere circunflexo ^
para negar um conjunto ou intervalo. Por exemplo, o intervalo [^0-9]
corresponde a qualquer caractere, exceto um dígito, que é equivalente à \D
classe de caracteres .
É importante notar que quando você usa ^
dentro de colchetes, ele nega um conjunto ou intervalo. Mas se você usar fora de um colchete, é um caractere âncora que corresponde ao início da string.
Resumo
- Use colchetes
[]
para definir um conjunto ou intervalo. - Use o sinal de intercalação
^
dentro do colchete[]
para negar um conjunto ou intervalo[^...]
.