Maison > développement back-end > Golang > Go Regexp : le caractère point correspond-il à la nouvelle ligne par défaut ?

Go Regexp : le caractère point correspond-il à la nouvelle ligne par défaut ?

DDD
Libérer: 2024-10-27 05:38:03
original
892 Les gens l'ont consulté

Go Regexp: Does the Dot Character Match Newline by Default?

Go Regexp : un caractère correspond-il à la nouvelle ligne ?

Malgré la déclaration de la documentation selon laquelle n'importe quel caractère (.) dans la syntaxe re2 de Go correspond à n'importe quel caractère, y compris la nouvelle ligne (s=true), certains cas indiquent le contraire. Par exemple, le programme suivant démontre que le caractère any ne correspond pas à la nouvelle ligne :

<code class="go">import "regexp"

func main() {
    str := "hello\nworld"
    match, _ := regexp.MatchString(".*", str)
    println(match) // false
}</code>
Copier après la connexion

Solution : Dot All Flag

Pour résoudre ce problème, le package d'expression rationnelle de Go fournit le drapeau "pointer tout" (?s). Lorsqu'il est ajouté à une expression régulière, cet indicateur permet au caractère point (.) de correspondre aux nouvelles lignes.

<code class="go">func main() {
    str := "hello\nworld"
    match, _ := regexp.MatchString("(?s).*", str)
    println(match) // true
}</code>
Copier après la connexion

Avec l'indicateur (?s), n'importe quel caractère (.) correspond désormais aux caractères de nouvelle ligne. Cela correspond au comportement de la plupart des autres moteurs d'expressions régulières, qui ne correspondent généralement pas aux nouvelles lignes par défaut.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal