unisbadri.com » Python Java Golang Typescript Kotlin Ruby Rust Dart PHP
Regex Identifier

TS Config #

Berikut adalah penjelasan mengenai berbagai identifier dalam regex (regular expressions) di TypeScript, disertai dengan contoh penggunaannya:

Karakter Literal #

Karakter literal adalah karakter yang cocok dengan dirinya sendiri.

Contoh:

let regex = /abc/;
console.log(regex.test("abc")); // Output: true
console.log(regex.test("def")); // Output: false
  • Pola abc akan cocok dengan string “abc” dan tidak akan cocok dengan string lain.

Metakarakter #

Metakarakter memiliki makna khusus dalam regex.

  • . (Titik): Mencocokkan sembarang karakter tunggal kecuali baris baru.

    let regex = /a.b/;
    console.log(regex.test("acb")); // Output: true
    console.log(regex.test("aab")); // Output: true
    console.log(regex.test("ab"));  // Output: false
    
  • ^ (Caret): Mencocokkan awal dari string.

    let regex = /^hello/;
    console.log(regex.test("hello world")); // Output: true
    console.log(regex.test("world hello")); // Output: false
    
  • $ (Dollar Sign): Mencocokkan akhir dari string.

    let regex = /world$/;
    console.log(regex.test("hello world")); // Output: true
    console.log(regex.test("world hello")); // Output: false
    
  • \ (Backslash): Digunakan untuk menghindari makna khusus dari metakarakter.

    let regex = /a\.b/;
    console.log(regex.test("a.b")); // Output: true
    console.log(regex.test("acb")); // Output: false
    

Karakter Kelas (Character Classes) #

Karakter kelas memungkinkan Anda untuk mencocokkan salah satu dari sekumpulan karakter.

  • [...]: Mencocokkan satu karakter dalam tanda kurung.

    let regex = /[abc]/;
    console.log(regex.test("a")); // Output: true
    console.log(regex.test("d")); // Output: false
    
  • [^...]: Mencocokkan satu karakter yang tidak ada dalam tanda kurung.

    let regex = /[^abc]/;
    console.log(regex.test("d")); // Output: true
    console.log(regex.test("a")); // Output: false
    

Predefined Character Classes #

Kelas karakter yang telah ditentukan sebelumnya digunakan untuk mencocokkan sekumpulan karakter umum.

  • \d: Mencocokkan digit (angka).

    let regex = /\d/;
    console.log(regex.test("123")); // Output: true
    console.log(regex.test("abc")); // Output: false
    
  • \D: Mencocokkan non-digit (bukan angka).

    let regex = /\D/;
    console.log(regex.test("abc")); // Output: true
    console.log(regex.test("123")); // Output: false
    
  • \w: Mencocokkan karakter alfanumerik atau underscore.

    let regex = /\w/;
    console.log(regex.test("hello")); // Output: true
    console.log(regex.test("@#$"));   // Output: false
    
  • \W: Mencocokkan non-alfanumerik.

    let regex = /\W/;
    console.log(regex.test("@#$"));   // Output: true
    console.log(regex.test("hello")); // Output: false
    
  • \s: Mencocokkan spasi putih (whitespace).

    let regex = /\s/;
    console.log(regex.test(" ")); // Output: true
    console.log(regex.test("a")); // Output: false
    
  • \S: Mencocokkan non-spasi putih.

    let regex = /\S/;
    console.log(regex.test("a")); // Output: true
    console.log(regex.test(" ")); // Output: false
    

Quantifiers #

Quantifiers menentukan berapa kali suatu elemen dalam regex harus muncul agar cocok.

  • *: Mencocokkan 0 atau lebih kemunculan dari elemen sebelumnya.

    let regex = /a*/;
    console.log(regex.test("aaa")); // Output: true
    console.log(regex.test(""));    // Output: true
    
  • +: Mencocokkan 1 atau lebih kemunculan dari elemen sebelumnya.

    let regex = /a+/;
    console.log(regex.test("aaa")); // Output: true
    console.log(regex.test(""));    // Output: false
    
  • ?: Mencocokkan 0 atau 1 kemunculan dari elemen sebelumnya.

    let regex = /a?/;
    console.log(regex.test("a")); // Output: true
    console.log(regex.test(""));  // Output: true
    
  • {n}: Mencocokkan tepat n kemunculan dari elemen sebelumnya.

    let regex = /a{3}/;
    console.log(regex.test("aaa")); // Output: true
    console.log(regex.test("aa"));  // Output: false
    
  • {n,}: Mencocokkan n atau lebih kemunculan dari elemen sebelumnya.

    let regex = /a{2,}/;
    console.log(regex.test("aa"));  // Output: true
    console.log(regex.test("a"));   // Output: false
    
  • {n,m}: Mencocokkan antara n dan m kemunculan dari elemen sebelumnya.

    let regex = /a{2,4}/;
    console.log(regex.test("aa"));  // Output: true
    console.log(regex.test("aaaa")); // Output: true
    console.log(regex.test("a"));   // Output: false
    

Grouping and Capturing #

Grouping digunakan untuk mengelompokkan beberapa elemen menjadi satu unit dan menangkap bagian dari string yang cocok.

  • (...): Mengelompokkan elemen menjadi satu dan menangkap kecocokan.

    let regex = /(abc)+/;
    console.log(regex.test("abcabc")); // Output: true
    console.log(regex.test("ab"));     // Output: false
    
  • (?:...): Mengelompokkan elemen tanpa menangkap kecocokan (non-capturing group).

    let regex = /(?:abc)+/;
    console.log(regex.test("abcabc")); // Output: true
    console.log(regex.test("ab"));     // Output: false
    

Alternation #

Alternation menggunakan | untuk mencocokkan salah satu dari beberapa pola.

  • |: Mencocokkan salah satu dari pola yang dipisahkan oleh |.

    let regex = /abc|def/;
    console.log(regex.test("abc")); // Output: true
    console.log(regex.test("def")); // Output: true
    console.log(regex.test("ghi")); // Output: false
    

Assertions #

Assertions adalah pola khusus yang mencocokkan posisi dalam string, bukan karakter.

  • ^: Mencocokkan awal string atau awal baris dalam mode multiline.

    let regex = /^abc/;
    console.log(regex.test("abc def")); // Output: true
    console.log(regex.test("def abc")); // Output: false
    
  • $: Mencocokkan akhir string atau akhir baris dalam mode multiline.

    let regex = /abc$/;
    console.log(regex.test("def abc")); // Output: true
    console.log(regex.test("abc def")); // Output: false
    
  • \b: Mencocokkan batas kata.

    let regex = /\bword\b/;
    console.log(regex.test("word"));    // Output: true
    console.log(regex.test("swordplay"));// Output: false
    
  • \B: Mencocokkan bukan batas kata.

    let regex = /\Bword\B/;
    console.log(regex.test("swordplay")); // Output: true
    console.log(regex.test("word"));      // Output: false
    

Lookahead dan Lookbehind #

Lookahead dan lookbehind digunakan untuk mencocokkan pola yang didahului atau diikuti oleh pola lain tanpa menyertakan pola tersebut dalam hasil kecocokan.

  • Positive Lookahead ((?=...)): Mencocokkan jika pola berikutnya cocok, tanpa menangkap pola tersebut.

    let regex = /\d+(?=px)/;
    console.log(regex.test("100px")); // Output: true
    console.log(regex.test("100pt")); // Output: false
    let match = "100px".match(regex);
    console.log(match[0]); // Output: 100
    

    Di sini, \d+(?=px) mencocokkan angka yang diikuti oleh “px”, tetapi “px” tidak termasuk dalam hasil kecocokan.

  • Negative Lookahead ((?!...)): Mencocokkan jika pola berikutnya tidak cocok.

    let regex = /\d+(?!px)/;
    console.log(regex.test("100pt")); // Output: true
    console.log(regex.test("100px")); // Output: false
    let match = "100pt".match(regex);
    console.log(match[0]); // Output: 100
    

    Di sini, \d+(?!px) mencocokkan angka yang tidak diikuti oleh “px”.

  • Positive Lookbehind ((?<=...)): Mencocokkan jika pola sebelumnya cocok, tanpa menangkap pola tersebut.

    let regex = /(?<=\$)\d+/;
    console.log(regex.test("$100")); // Output: true
    console.log(regex.test("100"));  // Output: false
    let match = "$100".match(regex);
    console.log(match[0]); // Output: 100
    

    Di sini, (?<=\$)\d+ mencocokkan angka yang didahului oleh tanda “$”, tetapi “$” tidak termasuk dalam hasil kecocokan.

  • Negative Lookbehind ((?<!...)): Mencocokkan jika pola sebelumnya tidak cocok.

    let regex = /(?<!\$)\d+/;
    console.log(regex.test("100"));  // Output: true
    console.log(regex.test("$100")); // Output: false
    let match = "100".match(regex);
    console.log(match[0]); // Output: 100
    

    Di sini, (?<!\$)\d+ mencocokkan angka yang tidak didahului oleh tanda “$”.

Escape Characters #

Untuk mencocokkan karakter yang merupakan metakarakter (seperti ., *, ?, dll.), Anda harus menggunakan backslash \ untuk menghindarinya.

Contoh:

let regex = /\./;
console.log(regex.test("example.com")); // Output: true
console.log(regex.test("examplecom"));  // Output: false

Di sini, \. digunakan untuk mencocokkan karakter titik (.) secara literal.

Kesimpulan #

Dengan memahami dan menggunakan berbagai identifier dalam regex, Anda dapat membuat pola pencarian yang sangat spesifik dan kuat untuk memanipulasi teks di TypeScript. Regular expressions memberikan fleksibilitas yang luar biasa untuk pencocokan pola, validasi, dan penggantian teks, menjadikannya alat yang sangat berguna dalam pemrograman.

« Regex
TS Config »