Bagaimana untuk Penyelesaian Lookarounds dalam Go Regular Expressions?

Mary-Kate Olsen
Lepaskan: 2024-11-12 19:47:02
asal
973 orang telah melayarinya

How to Workaround Lookarounds in Go Regular Expressions?

Ralat Menghuraikan Regexp: Sintaks Perl Tidak Sah atau Tidak Disokong (?!

Apabila cuba menyusun ungkapan biasa dalam Go, pengguna mungkin menghadapi ralat penghuraian berikut:

error parsing regexp: invalid or unsupported Perl syntax: (?!
Salin selepas log masuk

Ralat ini biasanya ditimbulkan apabila cuba menggunakan operator lookaround (?!..., yang tidak disokong dalam sintaks ungkapan biasa Go.

Memahami Lookarounds

Lookarounds ialah jenis khas pengendali ungkapan biasa yang digunakan untuk memadankan corak hanya jika ia tidak diikuti dengan segera atau didahului oleh corak tertentu yang lain Dalam kes ini, (?! sedang digunakan untuk menyemak sama ada rentetan yang diberikan tidak bermula dengan teks "Hidup".

Go Regexp Workaround

Oleh kerana Go tidak menyokong lookarounds, terdapat beberapa penyelesaian yang tersedia:

Menggunakan Separate Regexps

Satu pendekatan ialah menggunakan dua ungkapan biasa yang berasingan:

nonOnRegex := regexp.MustCompile("^(?!On.*On\s.+?wrote:)(On\s(.+?)wrote:)$")
onOnRegex := regexp.MustCompile("^On.*On\s.+?wrote:")
Salin selepas log masuk

Anda kemudian boleh menyemak sama ada nonOnRegex sepadan dengan rentetan dan onOnRegex tidak sepadan untuk menentukan hasil yang diingini.

Menggunakan Kumpulan Penangkapan Pilihan

Penyelesaian lain ialah menggunakan kumpulan penangkapan pilihan:

regex := regexp.MustCompile(`^On(.*On)?\s.+?wrote:`)
Salin selepas log masuk

Selepas memadankan rentetan menggunakan ungkapan biasa ini, anda boleh menyemak sama ada yang pertama kumpulan penangkapan wujud dan berakhir dengan "Hidup". Jika ya, kembalikan palsu, sebaliknya kembalikan benar.

Dengan melaksanakan salah satu penyelesaian ini, anda boleh meniru kefungsian cari sekitar dalam sintaks ungkapan biasa Go dengan berkesan.

Atas ialah kandungan terperinci Bagaimana untuk Penyelesaian Lookarounds dalam Go Regular Expressions?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan