Rumah > pembangunan bahagian belakang > Golang > Pergi Regexp: Adakah Watak Titik Padan Baris Baharu secara Lalai?

Pergi Regexp: Adakah Watak Titik Padan Baris Baharu secara Lalai?

DDD
Lepaskan: 2024-10-27 05:38:03
asal
893 orang telah melayarinya

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

Go Regexp: Adakah Mana-mana Watak Padan Baris Baharu?

Walaupun kenyataan dokumentasi bahawa sebarang aksara (.) dalam sintaks re2 Go sepadan dengan mana-mana watak, termasuk baris baharu (s=true), kes tertentu menunjukkan sebaliknya. Sebagai contoh, program berikut menunjukkan bahawa mana-mana watak tidak sepadan dengan baris baharu:

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

func main() {
    str := "hello\nworld"
    match, _ := regexp.MatchString(".*", str)
    println(match) // false
}</code>
Salin selepas log masuk

Penyelesaian: Dot All Flag

Untuk menangani isu ini, pakej regexp Go menyediakan bendera "titik semua" (?s). Apabila ditambahkan pada ungkapan biasa, bendera ini membenarkan aksara titik (.) untuk memadankan baris baharu.

<code class="go">func main() {
    str := "hello\nworld"
    match, _ := regexp.MatchString("(?s).*", str)
    println(match) // true
}</code>
Salin selepas log masuk

Dengan bendera (?s), mana-mana aksara (.) kini sepadan dengan aksara baris baharu. Ini sejajar dengan gelagat kebanyakan enjin regex lain, yang biasanya tidak sepadan dengan baris baharu secara lalai.

Atas ialah kandungan terperinci Pergi Regexp: Adakah Watak Titik Padan Baris Baharu secara Lalai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan