Golang | Encontrar el índice de la expresión regular presente en Slice

Una expresión regular es una secuencia de caracteres que define un patrón de búsqueda. El lenguaje Go admite expresiones regulares. Una expresión regular se usa para analizar, filtrar, validar y extraer información significativa de texto grande, como registros, la salida generada por otros programas, etc.
En Go regexp, puede encontrar el valor de índice más a la izquierda de la expresión regular especificada en el segmento dado de bytes con la ayuda de FindIndex()método. Este método devuelve una porción de enteros de dos elementos que define la ubicación de la coincidencia más a la izquierda en la porción dada de la expresión regular y la coincidencia como s[loc[0]:loc[1]]. O devolverá cero si no se encuentra ninguna coincidencia. Este método se define en el paquete regexp, por lo que para acceder a este método necesita importar el paquete regexp en su programa.

Sintaxis:

func (re *Regexp) FindIndex(s []byte) (loc []int)

Ejemplo 1:

// Go program to illustrate how to find the index
// value of the regexp in the given slice
  
package main
  
import (
    "fmt"
    "regexp"
)
  
// Main function
func main() {
  
    // Finding the index value of regexp 
    // from the given slice of bytes
    // Using FindIndex() method
    m := regexp.MustCompile(`ek`)
  
    fmt.Println(m.FindIndex([]byte(`GeeksgeeksGeeks, geeks`)))
    fmt.Println(m.FindIndex([]byte(`Hello! geeksForGEEKs`)))
    fmt.Println(m.FindIndex([]byte(`I like Go language`)))
    fmt.Println(m.FindIndex([]byte(`Hello, Welcome`)))
  
}

Producción:

[2 4]
[9 11]
[]
[]

Ejemplo 2:

// Go program to illustrate how to find the
// index value of the regexp in the given slice
package main
  
import (
    "fmt"
    "regexp"
)
  
// Main function
func main() {
  
    // Finding regexp from
    // the given slice
    // Using Find() method
    m := regexp.MustCompile(`45`)
    res := m.Find([]byte(`I45, like345, Go-234 langu34age`))
  
    if res == nil {
        fmt.Println("Nil found")
    } else {
  
        // Finding the index value of
        // the regexp from the given slice
        // Using FindIndex() method
        r := m.FindIndex([]byte(`I45, like345, Go-234 langu34age`))
        fmt.Printf("Found: %q with index value: %d", res, r)
    }
}

Producción:

Found: "45" with index value: [1 3]

Publicación traducida automáticamente

Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *