Golang Regex

Golang Regex
Expressão regular, comumente conhecida como regex, é uma sequência de caracteres que definem e governam os padrões de pesquisa que correspondem a uma string específica. Expressões regulares são uma ferramenta muito útil ao trabalhar com dados de texto.

Este artigo explorará como trabalhar com expressão regular na linguagem de programação Go usando o pacote Build Regexp.

Pacote Golang Regexp

O pacote Golang Regexp fornece métodos e ferramentas para pesquisa, filtragem, substituição, validação e extração de strings usando expressões regulares.

Para usar este pacote, precisamos importá -lo como:

importar "regexp"

Para definir padrões de expressão regular, podemos usar alguns padrões predefinidos, como mostrado na tabela abaixo:

Padrão Descrição
. Combinar com qualquer personagem
[abc] Corresponder a, b ou c
\ s Combine um personagem de espaço em branco. \ t \ n \ f \ r
[A-C] Qualquer personagem de A a C
[^ABC] Negar e combinar todos os personagens, exceto a, b e c
\c Combinar um personagem de palavra
a | b Operador alternativo. a ou b, prefira um
[A-Z0-9] Corresponder a qualquer personagem de A a Z ou 0 a 9
\ d Combine qualquer dígito entre 0 e 9
^ No início de um texto ou linha
? Combine o personagem anterior apenas uma vez
+ Combine o personagem anterior uma ou várias vezes
* Combine o caractere anterior 0 ou várias vezes
$ Combinar no final do texto

Método FindString ()

O método findString () retorna a substring mais à esquerda que corresponde a um padrão especificado. Se nenhuma correspondência for encontrada, a função retorna uma string vazia.

Um código de exemplo é como mostrado:

PackageMain
importação (
"FMT"
"Regexp"
)
funcmain ()
Re: = regexp.MustCompile ("F ([a-z]+) t")
fmt.Println (re.FindString ("Fruit"))
fmt.Println (re.FindString ("Fit"))
fmt.Println (re.FindString ("false"))
fmt.Println (re.FindString ("Faith"))
fmt.Println (re.FindString ("Fix"))

No exemplo anterior, usamos o método Mustcompile para compilar o padrão de expressão regular com uma estrutura regex otimizada.

Em seguida, usamos o método findstring () para retornar as seqüências de correspondência. O código anterior deve retornar:

fruta
ajustar
fait

Nota: a função retorna seqüências vazias se não houver correspondência.

Método FindStringIndex ()

Este método retorna o índice inicial e final da substring mais à esquerda correspondente por uma expressão regular especificada.

Exemplo:

PackageMain
importação (
"FMT"
"Regexp"
)
funcmain ()
Re: = regexp.MustCompile ("F ([a-z]+) t")
fmt.Println (re.FindStringIndex ("Fruit"))

O código anterior deve retornar o índice da substring correspondente. Em nosso exemplo, o código retorna do índice 0 a 5:

$ go run regex.ir
[0 5]

Método replaceAllString ()

O método replaceAllString () é usado para substituir o texto que corresponde a um padrão específico. Ele retorna a cópia e substitui todas as seqüências de correspondência.

Podemos ilustrar esse método usando o seguinte código:

PackageMain
importação (
"FMT"
"Regexp"
)
funcmain ()
Re: = regexp.MustCompile ("F ([a-z]+) t")
fmt.Printf ("%q \ n", re.ReplaceAllString ("fruta", "comida")))

O código anterior deve substituir a string correspondente pelo valor especificado. Como toda a string corresponde ao padrão especificado, a função substitui todos os caracteres.

Método Split ()

Podemos dividir uma string usando o método split () e o padrão especificado. Um código de exemplo é como mostrado:

PackageMain
importação (
"FMT"
"Regexp"
)
funcmain ()
Re: = regexp.MustCompile ("U")
fmt.Printf ("%q \ n", re.Dividido ("fruta", -1))
fmt.Printf ("%q \ n", re.Split ("Quinta -feira", -2))
fmt.Printf ("%q \ n", re.Split ("Função", 2))

O código anterior define uma expressão regular para combinar com um único caractere. Em seguida, usamos o método dividido para dividir a string fornecida em várias substâncias onde o padrão corresponde.

A saída resultante é como mostrado:

$ go run regex.ir
["fr" "it"]
["Th" "Rsday"]
["f" "nction"]

Conclusão

Este tutorial ilustra como começar com a expressão regular na programação Go usando o pacote Regexp. Além disso, vários métodos foram discutidos para determinar a opção certa para suas necessidades. Verifique outros artigos de dica do Linux e a documentação para saber mais dicas.