当前位置:网站首页>Golang regexp package use - 06 - other usage (Special Character conversion, find regular Common prefix, Switch gourmand mode, query regular Group NUMBER, query regular Group name, cut with regular, qu

Golang regexp package use - 06 - other usage (Special Character conversion, find regular Common prefix, Switch gourmand mode, query regular Group NUMBER, query regular Group name, cut with regular, qu

2022-06-26 02:59:00 Exploitation et entretien Xuande Gong

1. QuoteMeta() Fonctions(Conversion spéciale de caractères)

Convertir les caractères spéciaux d'une expression régulière.

Syntaxe

func QuoteMeta(s string) string

Exemple complet

package main

import (
	"fmt"
	"regexp"
)

func main() {
    
	pattern := "Hyund..*?"
    myString := regexp.QuoteMeta(pattern)
	fmt.Println(myString)
}
  • Résultats
Hyund.\.\*\?

2. LiteralPrefix()Méthodes(Trouver un préfixe commun régulier)

Syntaxe

func (re *Regexp) LiteralPrefix() (prefix string, complete bool)

prefix: Préfixe commun
complete:Si prefix C'est l'expression régulière elle - même ,Renvoie true,Sinon, retournez à false

Exemple complet

  • Code
package main

import (
	"fmt"
	"regexp"
)

func main() {
    
	reg := regexp.MustCompile(`Hello[\w\s]+`)
	fmt.Println(reg.LiteralPrefix())

	reg = regexp.MustCompile(`Hello`)
	fmt.Println(reg.LiteralPrefix())

	reg = regexp.MustCompile(`.*Hello`)
	fmt.Println(reg.LiteralPrefix())
}
  • Résultats
Hello false
Hello true
 false

Comme ci - dessus

  • Résultat 1,Préfixe communhelloRetour,false Indique que le préfixe n'est pas la chaîne d'expression régulière elle - même
  • Résultat 2,Préfixe communhelloRetour,true Indique que le préfixe est la chaîne d'expression régulière elle - même
  • Résultat 3, Pas de préfixe commun

3. Longest()Méthodes(Basculer le mode avide)

Syntaxe

func (re *Regexp) Longest()

Exemple complet

package main

import (
	"fmt"
	"regexp"
)

func main() {
    
	s := `10.10.239.11`
	reg := regexp.MustCompile(".*?\\.")
	fmt.Printf("%s\n", reg.FindString(s))

	reg.Longest() // Basculer le mode avide
	fmt.Printf("%s\n", reg.FindString(s))
}
  • Résultats
10.
10.10.239.

4. NumSubexp()Méthodes(Nombre de groupes dans la requête régulière)

Syntaxe

func (re *Regexp) NumSubexp() int

Exemple complet

  • Code
package main

import (
	"fmt"
	"regexp"
)
func main() {
    
	reg := regexp.MustCompile("(\\d+)\\.(\\d+)")
	n := reg.NumSubexp()
	fmt.Printf(" Le nombre de groupes dans le regular est :%d",n)

}
  • Résultats
 Le nombre de groupes dans le regular est :2

5. Split() Méthodes(Coupe régulière)

Syntaxe

func (re *Regexp) Split(s string, n int) []string

Exemple complet

  • Code
package main

import (
	"fmt"
	"regexp"
)

func main() {
    
	reg := regexp.MustCompile(`\.`)
	myString := "www.xishu.com"
	result := reg.Split(myString, -1)
	fmt.Printf("Résultats:%q\n",result )

}
  • Résultats
Résultats:["www" "xishu" "com"]

6. String()Méthodes (Oui.*regexp.RegexpDans l'exemple, la régularité eststringProduits)

Syntaxe

func (re *Regexp) String() string

Exemple complet

package main

import (
	"fmt"
	"regexp"
)

func main() {
    
	reg := regexp.MustCompile("\\d+$")
	pattern := reg.String()
	fmt.Printf("%s\n", pattern)
}
  • Résultats
\d+$

7. SubexpNames() Méthodes(Renvoie le nom du Groupe régulier)

Syntaxe

func (re *Regexp) SubexpNames() []string

Nommer les groupes réguliers :

(?P<NAME>)

Exemple complet

package main

import (
	"fmt"
	"regexp"
)
func main() {
    
	reg := regexp.MustCompile("(?P<first>\\d+)\\.(?P<second>\\d+)\\.(?P<third>\\d+)\\.(?P<fourth>\\d+)$")
	namesList := reg.SubexpNames()
	fmt.Printf("%+v\n", namesList)
}
  • Résultats
[ first second third fourth]

https://blog.csdn.net/qq_41629756/article/details/100516635

原网站

版权声明
本文为[Exploitation et entretien Xuande Gong]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/177/202206260223244667.html