Memisahkan Rentetan dengan Pembatas Dipelihara
Apabila bekerja dengan rentetan yang mengandungi berbilang pembatas, menjadi penting untuk memisahkan rentetan kepada bahagian konstituennya semasa mengekalkan maklumat pembatas. Kaedah String.split() menyediakan mekanisme mudah untuk membelah rentetan, tetapi ia hanya mengekstrak subrentetan tanpa mengekalkan pembatas.
Untuk mencapai hasil yang diingini bagi membelah rentetan dan mengekalkan pembatas, seseorang boleh menggunakan biasa ungkapan dengan pandangan ke hadapan dan pandangan di belakang. Lookahead (?=) dan look behind (?<=) ialah sintaks khas yang membenarkan pemadanan tanpa menggunakan sebarang aksara daripada rentetan input.
Pertimbangkan contoh berikut:
<code class="java">String input = "(Text1)(DelimiterA)(Text2)(DelimiterC)(Text3)(DelimiterB)(Text4)"; String[] parts = input.split("((?=;)|(?<=;))");</code>
Dalam ini kod:
Apabila digunakan dengan kaedah split(), ungkapan biasa ini akan mengenal pasti setiap aksara pembatas (;) dan mencipta padanan kosong untuknya. Oleh itu, bahagian tatasusunan yang terhasil akan mengandungi elemen berikut:
[Text1, ;, Text2, ;, Text3, ;, Text4]
Pendekatan ini membolehkan kami mengekalkan struktur asal rentetan sambil membahagikannya kepada komponen individunya. Ia ialah teknik yang berkuasa untuk menghuraikan rentetan kompleks dengan cara yang mengekalkan integritinya.
Atas ialah kandungan terperinci Bagaimana untuk Memisahkan Rentetan Memelihara Pembatas Menggunakan Ungkapan Biasa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!