Rumah >Java >javaTutorial >Bagaimana Memadankan Koma di Luar Kurungan Menggunakan Ungkapan Biasa Java?

Bagaimana Memadankan Koma di Luar Kurungan Menggunakan Ungkapan Biasa Java?

Patricia Arquette
Patricia Arquetteasal
2024-11-23 00:23:14980semak imbas

How to Match Commas Outside Parentheses Using Java Regular Expressions?

Memadankan Koma di Luar Kurungan dengan Ungkapan Biasa Java

Memandangkan rentetan dengan koma yang berpotensi disertakan dalam kurungan, objektifnya adalah untuk mengenal pasti koma yang tidak terkandung dalam mana-mana kumpulan kurungan. Ini boleh dicapai melalui ungkapan biasa tersuai.

Java Regex Solution

Dengan mengandaikan ketiadaan kurungan bersarang dalam rentetan input, ungkapan biasa Java berikut boleh digunakan :

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);

Corak regex ini memanfaatkan pernyataan pandangan negatif untuk mengesahkan bahawa yang seterusnya kurungan berturut-turut (jika ada) bukan kurungan penutup. Hanya dalam senario itu koma dibenarkan dipadankan.

Penggunaan dan Penjelasan

Corak dibahagikan kepada dua komponen utama:

  1. Memadankan Koma: Ungkapan biasa bermula dengan padanan mudah untuk mana-mana kendiri koma.
  2. Pernyataan Pandangan Negatif: Bahagian berikut, disertakan dalam kurungan dan didahului dengan (?!, menegaskan bahawa urutan aksara yang mengikuti koma tidak sepatutnya sepadan dengan corak yang ditentukan. Dalam ini kes, ia memastikan bahawa tidak semua aksara sehingga dan termasuk kurungan penutup seterusnya (diwakili oleh [^)]* \)) adalah sekarang.

Dengan mengecualikan koma yang disertakan dalam kurungan, regex ini berkesan menangkap hanya koma yang wujud di luar mana-mana kumpulan kurungan.

Atas ialah kandungan terperinci Bagaimana Memadankan Koma di Luar Kurungan Menggunakan Ungkapan Biasa Java?. 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