Rumah >pembangunan bahagian belakang >Golang >Cara Melaksanakan Set Negatif dalam Regex for Go: Panduan Mengelakkan Keputusan Tidak Dijangka
Melaksanakan Set Negatif dalam Regex for Go
Ungkapan biasa yang disediakan bertujuan untuk menangkap nama fail yang tidak berakhir dengan sambungan fail tertentu (cth. , htm, html, kelas, js). Walau bagaimanapun, pelaksanaan dalam Go menggunakan pakej regexp menghasilkan hasil yang berbeza daripada parser regex dalam talian.
Percanggahan ini timbul kerana enjin regex RE2 perpustakaan standard Go tidak menyokong pandangan negatif (iaitu, operator ?! yang digunakan dalam ungkapan asal). Akibatnya, ia tidak boleh mengecualikan rentetan yang berakhir dalam sambungan fail yang ditentukan.
Untuk meniru gelagat penghurai regex dalam talian, anda boleh mempertimbangkan pendekatan berikut:
<code class="go">re := regexp.MustCompile(`^(.*\.(?!(htm|html|class|js)$))([^.]*)$`)</code>
<code class="go">re := regexp.MustCompile(`^(.*?)(?<!\.(htm|html|class|js)$)`)</code>
<code class="go">re := regexp.MustCompile(`.\w{3}$`)</code>
Perhatikan bahawa ungkapan ini mungkin menghasilkan hasil yang berbeza apabila ia melaksanakan logik dengan cara yang berbeza. Memilih pendekatan yang paling sesuai dengan kes penggunaan anda adalah penting.
Atas ialah kandungan terperinci Cara Melaksanakan Set Negatif dalam Regex for Go: Panduan Mengelakkan Keputusan Tidak Dijangka. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!