0Pricing
C++ Academy · Pelajaran

Dasar-Dasar regex

Cocokkan pola dalam teks

Dasar-Dasar regex adalah pelajaran C++ Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar C++ Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus C++ Academy mencakup 4 pelajaran total.

Apa Itu <regex>?

Header <regex> memungkinkan Anda mencocokkan teks dengan pola ekspresi reguler yang mendeskripsikan himpunan string. Anda membuat sebuah pola, lalu menguji atau mencari teks dengannya.

  • std::regex menyimpan pola yang telah dikompilasi.
  • Fungsi pencocokan melaporkan apakah teks sesuai.
#include <iostream>
#include <regex>

int main() {
    std::regex pattern("hello");
    std::cout << std::boolalpha << std::regex_match("hello", pattern) << '\n';
    return 0;
}

regex_match vs regex_search

regex_match mengharuskan seluruh string cocok. regex_search berhasil jika pola muncul di mana pun dalam string.

#include <iostream>
#include <regex>

int main() {
    std::regex p("cat");
    std::string s = "the cat sat";
    std::cout << std::boolalpha;
    std::cout << "match: " << std::regex_match(s, p) << '\n';
    std::cout << "search: " << std::regex_search(s, p) << '\n';
    return 0;
}

Kelas Karakter

Tanda kurung siku mendefinisikan himpunan karakter yang diizinkan. [aeiou] mencocokkan satu vokal apa pun; rentang seperti [a-z] mencocokkan huruf kecil.

#include <iostream>
#include <regex>

int main() {
    std::regex p("[a-z]+");
    std::cout << std::boolalpha << std::regex_match("hello", p) << '\n';
    std::cout << std::regex_match("Hello", p) << '\n';
    return 0;
}

Kuantifikator

Kuantifikator mengatur pengulangan: * nol kali atau lebih, + satu kali atau lebih, ? opsional, dan {n,m} rentang jumlah.

#include <iostream>
#include <regex>

int main() {
    std::regex p("a+b");
    std::cout << std::boolalpha;
    std::cout << std::regex_match("aaab", p) << '\n';
    std::cout << std::regex_match("b", p) << '\n';
    return 0;
}

Kelas Pradefinisi

Kelas singkat menghemat pengetikan: \\d mencocokkan angka, \\w karakter kata, dan \\s spasi kosong. Dalam sumber C++, garis miring terbalik ditulis dua kali.

#include <iostream>
#include <regex>

int main() {
    std::regex p("\\d+");
    std::cout << std::boolalpha;
    std::cout << std::regex_match("12345", p) << '\n';
    std::cout << std::regex_match("12a45", p) << '\n';
    return 0;
}

Jangkar

Jangkar menetapkan pencocokan pada suatu posisi: ^ menandai awal dan $ menandai akhir teks. Jangkar mencocokkan posisi, bukan karakter.

#include <iostream>
#include <regex>

int main() {
    std::regex p("^abc$");
    std::cout << std::boolalpha;
    std::cout << std::regex_search("abc", p) << '\n';
    std::cout << std::regex_search("xabc", p) << '\n';
    return 0;
}

Alternasi

Garis vertikal | berarti atau. Pola cat|dog mencocokkan salah satu dari kedua kata tersebut. Gunakan tanda kurung untuk membatasi cakupannya.

#include <iostream>
#include <regex>

int main() {
    std::regex p("cat|dog");
    std::cout << std::boolalpha;
    std::cout << std::regex_match("cat", p) << '\n';
    std::cout << std::regex_match("dog", p) << '\n';
    std::cout << std::regex_match("fish", p) << '\n';
    return 0;
}

Meloloskan Karakter Khusus

Karakter seperti ., *, dan ( memiliki makna khusus. Dahului karakter tersebut dengan garis miring terbalik agar dicocokkan secara literal.

#include <iostream>
#include <regex>

int main() {
    std::regex p("3\\.14");
    std::cout << std::boolalpha;
    std::cout << std::regex_match("3.14", p) << '\n';
    std::cout << std::regex_match("3x14", p) << '\n';
    return 0;
}

Pencocokan Tanpa Membedakan Huruf Besar-Kecil

Teruskan tanda seperti std::regex::icase saat membuat pola untuk mengabaikan besar-kecil huruf selama pencocokan.

#include <iostream>
#include <regex>

int main() {
    std::regex p("hello", std::regex::icase);
    std::cout << std::boolalpha;
    std::cout << std::regex_match("HELLO", p) << '\n';
    std::cout << std::regex_match("Hello", p) << '\n';
    return 0;
}

Validasi Sederhana

Pola sangat berguna untuk memvalidasi format masukan, misalnya memeriksa apakah sebuah string tampak seperti angka dasar dengan tanda opsional.

#include <iostream>
#include <regex>

bool isNumber(const std::string& s) {
    static const std::regex p("-?\\d+");
    return std::regex_match(s, p);
}

int main() {
    std::cout << std::boolalpha;
    std::cout << isNumber("-42") << '\n';
    std::cout << isNumber("4a2") << '\n';
    return 0;
}

Mencocokkan Beberapa Kali

Gabungkan kelas dan kuantifikator untuk memvalidasi format yang lebih kaya, seperti urutan huruf yang diikuti angka.

#include <iostream>
#include <regex>

int main() {
    std::regex p("[A-Za-z]+\\d+");
    std::cout << std::boolalpha;
    std::cout << std::regex_match("abc123", p) << '\n';
    std::cout << std::regex_match("123abc", p) << '\n';
    return 0;
}

Uji Cepat

Uji pemahaman Anda tentang perbedaan pencocokan dan pencarian.

Rangkuman

Anda telah mempelajari dasar-dasar <regex>:

  • regex_match untuk seluruh string, regex_search untuk pencocokan bagian string
  • kelas karakter, kuantifikator, jangkar, dan alternasi
  • kelas pradefinisi seperti \\d serta cara meloloskan karakter khusus
  • tanda seperti icase

Selanjutnya, Anda akan mengekstrak bagian tertentu dari pencocokan menggunakan grup penangkap.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Dasar-Dasar regex” gratis?

Ya — teks lengkap “Dasar-Dasar regex” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus C++ Academy, upgrade ke CoddyKit PRO. Kursus C++ Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Dasar-Dasar regex”?

Cocokkan pola dalam teks Kamu berlatih C++ Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai C++ Academy?

Tidak diperlukan pengalaman sebelumnya. C++ Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Dasar-Dasar regex” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran C++ Academy ini?

Ya. Setiap pelajaran C++ Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Dasar-Dasar regex
  2. Grup Penangkap
  3. Pencarian dan Penggantian
  4. Catatan Performa
← Kembali ke C++ Academy