Rumah >Java >javaTutorial >Bagaimanakah Ungkapan Biasa Boleh Mengeluarkan Komen Berbilang Baris Gaya C dengan Cekap daripada Rentetan?

Bagaimanakah Ungkapan Biasa Boleh Mengeluarkan Komen Berbilang Baris Gaya C dengan Cekap daripada Rentetan?

DDD
DDDasal
2024-11-30 19:27:17161semak imbas

How Can Regular Expressions Efficiently Remove C-Style Multiline Comments from a String?

Memadankan Komen Berbilang Baris Gaya C dengan Ungkapan Biasa

Dalam pelbagai konteks pengaturcaraan, adalah perlu untuk mengalih keluar komen berbilang baris daripada kod sumber atau teks . Tugas ini boleh dicapai dengan cekap menggunakan ungkapan biasa.

Sebagai contoh, pertimbangkan rentetan berikut yang mengandungi ulasan berbilang baris gaya C:

String src = "How are things today /* this is comment *\*/ and is your code  /*\* this is another comment */ working?"

Matlamatnya adalah untuk mengalih keluar kedua-dua subrentetan ulasan daripada src rentetan.

Penyelesaian Regex:

Untuk menyelesaikan tugasan ini, corak regex yang mantap dan cekap ialah:

String pat = "/\*[^*]*\*+(?:[^/*][^*]*\*+)*/"

Corak regex ini terdiri daripada komponen berikut:

  • /\* dan /: Padankan dengan permulaan dan penghujung ulasan.
  • [^*]** : Padankan 0 atau lebih aksara kecuali "*", diikuti dengan 1 atau lebih asterisk.
  • (?:): Mulakan kumpulan yang tidak menangkap.
  • [^/*][^*]** : Dalam kumpulan itu, padankan watak yang bukan "/ " atau "", diikuti dengan 0 atau lebih aksara kecuali "", dan 1 atau lebih asterisk.
  • )*: Ulang kumpulan 0 atau lebih kali.

Corak ini mengimbas rentetan dengan cekap dan memadankan ulasan berbilang baris, seperti yang ditunjukkan dalam contoh berikut:

Pattern p = Pattern.compile(pat);
Matcher m = p.matcher(src);
m.replaceAll(""); // Replaces comments with an empty string
System.out.println(m); // Prints the result: How are things today and is your code working?

Pendekatan ini membolehkan penyingkiran berbilang baris dengan cekap komen daripada rentetan, menjadikannya alat yang berharga untuk pemprosesan teks dan tugasan analisis kod.

Atas ialah kandungan terperinci Bagaimanakah Ungkapan Biasa Boleh Mengeluarkan Komen Berbilang Baris Gaya C dengan Cekap daripada Rentetan?. 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