Rumah > Java > javaTutorial > teks badan

Bagaimana untuk Memadankan Koma di Luar Tanda Kurung di Jawa?

Patricia Arquette
Lepaskan: 2024-11-11 21:49:02
asal
251 orang telah melayarinya

How to Match Commas Outside Parentheses in Java?

Memadankan Koma Tidak Termasuk Kejadian Kurung

Pertimbangkan rentetan berikut:

12,44,foo,bar,(23,45,200),6
Salin selepas log masuk

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);
Salin selepas log masuk

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:

  • (?! memulakan penegasan pandangan ke hadapan negatif.
  • [^(]* menunjukkan bahawa enjin regex harus mencari sebarang bilangan aksara kecuali pembukaan kurungan.
  • \) menyatakan bahawa kurungan penutup hendaklah serta-merta mengikut aksara sebelumnya.
  • ) menyimpulkan pernyataan pandangan ke hadapan.

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!

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