Memisahkan Rentetan dengan Ruang Tidak Dikelilingi oleh Petikan
Dalam konteks ini, kami mencari penyelesaian untuk membahagikan rentetan kepada komponen menggunakan ruang yang tidak diliputi oleh petikan tunggal atau berganda. Ini ialah tugasan bernuansa yang memerlukan pembuatan regex yang teliti.
Satu penyelesaian yang berkesan melibatkan pembinaan regex yang menangkap dua jenis elemen:
Untuk memadankan elemen ini, kita boleh menggunakan regex berikut:
[^\s"']+|"([^"]*)"|'([^']*)'
Dalam hal ini regex:
Melaksanakan penyelesaian ini dalam Java, kami boleh menggunakan kod berikut:
Pattern regex = Pattern.compile("[^\s\"']+|\"([^\"]*)\"|'([^']*)'"); Matcher regexMatcher = regex.matcher(subjectString); List<String> matchList = new ArrayList<>(); while (regexMatcher.find()) { if (regexMatcher.group(1) != null) { // Double-quoted string without quotes matchList.add(regexMatcher.group(1)); } else if (regexMatcher.group(2) != null) { // Single-quoted string without quotes matchList.add(regexMatcher.group(2)); } else { // Unquoted word matchList.add(regexMatcher.group()); } }
Pendekatan ini menangkap kedua-dua jenis elemen dengan cekap, memberikan penyelesaian yang mantap kepada masalah yang diberikan .
Atas ialah kandungan terperinci Bagaimana untuk Memisahkan Rentetan dengan Ruang, Mengabaikan Ruang Dalam Petikan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!