uso regulares lenguaje expresiones ejemplos regex go string-split

regex - lenguaje - Dividir cadena usando expresiones regulares en Go



lenguaje de expresiones regulares (5)

Soy realmente nuevo en Go y lo he estado disfrutando hasta ahora. Estoy tratando de encontrar una buena manera de dividir una cadena usando una expresión regular en lugar de una cadena. Gracias

http://nsf.github.com/go/strings.html?f:Split !



Hice una función de división de expresiones regulares basada en el comportamiento de la función de división de expresiones regulares en java, c #, php ... Solo devuelve una matriz de cadenas, sin la información del índice.

func RegSplit(text string, delimeter string) []string { reg := regexp.MustCompile(delimeter) indexes := reg.FindAllStringIndex(text, -1) laststart := 0 result := make([]string, len(indexes) + 1) for i, element := range indexes { result[i] = text[laststart:element[0]] laststart = element[1] } result[len(indexes)] = text[laststart:len(text)] return result }

ejemplo:

fmt.Println(RegSplit("a1b22c333d", "[0-9]+"))

resultado:

[a b c d]



Use regexp.Split para dividir la cadena en una porción de cadenas con el patrón como delimitador.

package main import ( "fmt" "regexp" ) func main() { re := regexp.MustCompile("[0-9]+") txt := "Have9834a908123great10891819081day!" split := re.Split(txt, -1) set := []string{} for i := range split { set = append(set, split[i]) } fmt.Println(set) // ["Have", "a", "great", "day!"] }


Si solo quieres dividir en ciertos caracteres, puedes usar strings.FieldsFunc , de lo contrario, iría con regexp.FindAllString .