Memadankan Koma Tidak Termasuk Kejadian Kurung
Pertimbangkan rentetan berikut:
12,44,foo,bar,(23,45,200),6
Tugas di tangan adalah untuk merangka ungkapan biasa yang secara khusus menyasarkan koma yang terletak di luar kurungan. Dalam erti kata lain, dalam contoh yang disediakan, kita memerlukan regex yang sepadan dengan dua koma selepas "23" dan "45" tetapi mengecualikan yang lain.
Java Regular Expression Solution
Menganggap kurungan bersarang tiada, kami boleh menggunakan ungkapan biasa Java berikut untuk mencapai yang diingini hasil:
Pattern regex = Pattern.compile( ", # Match a comma\n" + "(?! # only if it's not followed by...\n" + " [^(]* # any number of characters except opening parens\n" + " \) # followed by a closing parens\n" + ") # End of lookahead", Pattern.COMMENTS);
Penjelasan Regex
regex ini menggunakan pernyataan pandangan negatif untuk mengesahkan bahawa sebarang kurungan berikutnya (jika ditemui) bukanlah kurungan penutup. Jika syarat ini dipenuhi, koma diiktiraf sebagai padanan.
Penegasan pandang ke hadapan beroperasi seperti berikut:
Ini memastikan regex hanya sepadan koma yang tidak segera diikuti dengan kurungan penutup.
Atas ialah kandungan terperinci Bagaimana untuk Memadankan Koma di Luar Tanda Kurung di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!