Rumah >Java >javaTutorial >Bagaimana Memadankan Koma di Luar Tanda Kurung Menggunakan Ungkapan Biasa di Jawa?

Bagaimana Memadankan Koma di Luar Tanda Kurung Menggunakan Ungkapan Biasa di Jawa?

Barbara Streisand
Barbara Streisandasal
2024-11-10 09:51:02249semak imbas

How to Match Commas Outside Parentheses Using Regular Expressions in Java?

Memadankan Koma di Luar Tanda Kurung Menggunakan Ungkapan Biasa

Masalah:

Pertimbangkan rentetan yang mengandungi berbilang koma, seperti "12,44,foo,bar,(23,45,200),6." Matlamatnya ialah untuk mencipta ungkapan biasa dalam Java yang sepadan dengan semua koma kecuali yang disertakan dalam kurungan, iaitu, hanya koma selepas 23 dan 45 dalam contoh yang diberikan.

Penyelesaian:

Untuk mencapai matlamat ini, kita perlu menggunakan ungkapan biasa yang menggabungkan pernyataan pandangan negatif. Berikut ialah ungkapan biasa Java yang memenuhi keperluan ini:

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:

  1. Padanan Koma: Bahagian pertama regex, "koma", hanya sepadan dengan koma.
  2. Penegasan Pandangan Ke Hadapan Negatif: Penegasan pandangan ke hadapan negatif, dilampirkan dalam bahagian "(?!)", menyemak sama ada corak berikut tidak sepadan dengan koma.
  3. Semak Kurung Bersarang: Corak ini terdiri daripada "1 )". Bahagian "1" sepadan dengan sebarang bilangan aksara kecuali kurungan pembukaan "(". Bahagian ")" sepadan dengan kurungan penutup ")".
  4. Logik Keseluruhan: Pandangan negatif ke hadapan memastikan bahawa koma hanya dipadankan jika ia tidak diikuti oleh mana-mana aksara kecuali kurungan pembukaan, yang kemudiannya diikuti dengan kurungan penutup. Ini secara berkesan mengecualikan koma dalam kurungan.

  1. (

Atas ialah kandungan terperinci Bagaimana Memadankan Koma di Luar Tanda Kurung Menggunakan Ungkapan Biasa di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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