Apa artinya \r javascript?

Ekspresi Reguler, atau singkatnya regex atau regexp, sangat kuat dan luar biasa dalam mencari dan memanipulasi string teks, terutama dalam memproses file teks. Satu baris regex dapat dengan mudah mengganti beberapa lusin baris kode pemrograman

Regex didukung di semua bahasa skrip (seperti Perl, Python, PHP, dan JavaScript); . Memulai dengan regex mungkin tidak mudah karena sintaks culunnya, tetapi ini pasti sepadan dengan investasi waktu Anda

Regex Dengan Contoh

Bagian ini dimaksudkan untuk mereka yang perlu menyegarkan ingatan mereka. Untuk pemula, lanjutkan ke bagian berikutnya untuk mempelajari sintaks, sebelum melihat contoh berikut

Ringkasan Sintaks Regex

  • Karakter. Semua karakter, kecuali yang memiliki arti khusus dalam regex, cocok dengan dirinya sendiri. e. g. , regex x_ cocok dengan substring "x";
  • Karakter Regex Khusus. Karakter ini memiliki arti khusus dalam regex (akan dibahas di bawah).
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    5,
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    6,
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    7,
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    8,
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    9,
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    ,
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    1,
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    2,
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    _________________________________________________10____10_____________________________________________.
  • Urutan Escape (\char)
    • Untuk mencocokkan karakter yang memiliki arti khusus dalam regex, Anda perlu menggunakan awalan escape sequence dengan garis miring terbalik (
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      8). e. g. ,
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      41
      42
      43
      44
      45
      46
      0 cocok
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      41
      42
      43
      44
      45
      46
      1;
    • Anda juga perlu menggunakan regex
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      41
      42
      43
      44
      45
      46
      6 untuk mencocokkan
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      41
      42
      43
      44
      45
      46
      7 (back-slash)
    • Regex mengenali urutan pelarian umum seperti
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      41
      42
      43
      44
      45
      46
      8 untuk baris baru,
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      41
      42
      43
      44
      45
      46
      9 untuk tab,
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      0 untuk carriage-return,
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      1 untuk angka oktal hingga 3 digit,
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      2 untuk kode hex dua digit,
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      3 untuk Unicode _____4 digit, _______3
  • Urutan Karakter (atau String). String dapat dicocokkan dengan menggabungkan urutan karakter (disebut sub-ekspresi). e. g. , regex
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    _5 cocok dengan
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    6. Pencocokan, secara default, peka terhadap huruf besar-kecil, tetapi dapat diatur ke peka huruf besar-kecil melalui pengubah
  • ATAU Operator (. ). e. g. , regex
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    7 menerima string
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    8 atau
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    9
  • Kelas karakter (atau Daftar Braket)
    • [. ]. Terima SALAH SATU karakter dalam tanda kurung siku, mis. g. ,
      input = "The first and second instances"
      regex = .* matches "first and second"
      But
      regex = .*? produces two matches: "first" and "second"
      0 pertandingan
      input = "The first and second instances"
      regex = .* matches "first and second"
      But
      regex = .*? produces two matches: "first" and "second"
      1,
      input = "The first and second instances"
      regex = .* matches "first and second"
      But
      regex = .*? produces two matches: "first" and "second"
      2,
      input = "The first and second instances"
      regex = .* matches "first and second"
      But
      regex = .*? produces two matches: "first" and "second"
      3,
      input = "The first and second instances"
      regex = .* matches "first and second"
      But
      regex = .*? produces two matches: "first" and "second"
      4 atau
      input = "The first and second instances"
      regex = .* matches "first and second"
      But
      regex = .*? produces two matches: "first" and "second"
      5
    • [. -. ] (Rentang Ekspresi). Terima SALAH SATU karakter dalam jangkauan, mis. g. ,
      input = "The first and second instances"
      regex = .* matches "first and second"
      But
      regex = .*? produces two matches: "first" and "second"
      _6 cocok dengan digit apa pun;
    • [^. ]. BUKAN SATU karakter, e. g. ,
      input = "The first and second instances"
      regex = .* matches "first and second"
      But
      regex = .*? produces two matches: "first" and "second"
      _8 cocok dengan non-digit apa pun
    • Hanya keempat karakter ini yang membutuhkan urutan escape di dalam daftar braket.
      find() found substring "00123" starting at index 3 and ending at index 8
      find() found substring "456" starting at index 11 and ending at index 14
      find() found substring "0" starting at index 15 and ending at index 16
      matches() found nothing
      lookingAt() found nothing
      abc**xyz456_0
      abc++xyz++_++
      9,
      ^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$
      0,
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      4,
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      8
  • Indikator Kejadian (atau Operator Pengulangan)
    • +. satu atau lebih (
      ^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$
      _3), e. g. ,
      ^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$
      _4 cocok dengan satu atau lebih digit seperti
      ^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$
      5,
      ^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$
      6
    • *. nol atau lebih (
      ^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$
      _7), e. g. ,
      ^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$
      _8 cocok dengan nol digit atau lebih. Itu menerima semua yang ada di
      ^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$
      _4 ditambah string kosong
    • ?. nol atau satu (opsional), e. g. , x0 cocok dengan
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      41
      42
      43
      44
      45
      46
      3 opsional, x2, atau string kosong
    • {M N}. x3 hingga x4 (keduanya termasuk)
    • {M}. tepat x_3 kali
    • {M,}. x3 atau lebih (x7)
  • Metakarakter. cocok dengan karakter
    • (dot). SETIAP SATU karakter kecuali baris baru. Sama seperti x_8
    • \DD. SATU digit/karakter non-digit APAPUN. Digit adalah
      input = "The first and second instances"
      regex = .* matches "first and second"
      But
      regex = .*? produces two matches: "first" and "second"
      _6
    • \w, \W. SETIAP SATU kata/karakter non-kata. Untuk ASCII, karakter kata adalah "x"0
    • \s, \S. SETIAP SATU karakter spasi/non-spasi. Untuk ASCII, karakter spasi adalah "x"1
  • Posisi Jangkar. tidak cocok dengan karakter, tetapi posisi seperti awal baris, akhir baris, awal kata, dan akhir kata
    • ^, $. start-of-line dan end-of-line masing-masing. e. g. , "x"_2 cocok dengan string numerik
    • \B. batas kata, i. e. , awal kata atau akhir kata. e. g. , "x"_3 cocok dengan kata "x"4 dalam string input
    • \B. Kebalikan dari \b, i. e. , bukan awal kata atau bukan akhir kata
    • \<, \>: start-of-word and end-of-word respectively, similar to "x"5. E.g.,
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      8 matches the word "x"4 in the input string.
    • \A, \Z. input awal dan input akhir masing-masing
  • Referensi Belakang yang Dikurung
    • Gunakan tanda kurung "x"_8 untuk membuat referensi balik
    • Gunakan "x"_9, 90,. (Java, Perl, JavaScript) atau 91, 92,. (Python) untuk mengambil kembali referensi secara berurutan
  • Kemalasan (Menahan Keserakahan untuk Operator Pengulangan). 93, 94, 95, 96, 97

Contoh. Angka [0-9]+ atau \d+

  1. Regex (ekspresi reguler) terdiri dari urutan sub-ekspresi. Dalam contoh ini,
    input = "The first and second instances"
    regex = .* matches "first and second"
    But
    regex = .*? produces two matches: "first" and "second"
    _6 dan
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    6
  2. The
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    00, yang dikenal sebagai kelas karakter (atau daftar braket), menyertakan daftar karakter. Itu cocok dengan karakter TUNGGAL apa pun dalam daftar. Dalam contoh ini,
    input = "The first and second instances"
    regex = .* matches "first and second"
    But
    regex = .*? produces two matches: "first" and "second"
    6 cocok dengan karakter TUNGGAL antara 0 dan 9 (i. e. , angka), dengan tanda hubung (
    ^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$
    0) menunjukkan rentang
  3. find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    6, dikenal sebagai indikator kejadian (atau operator pengulangan), menunjukkan satu atau lebih kejadian (
    ^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$
    3) dari sub-ekspresi sebelumnya. Dalam hal ini,
    ^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$
    _4 cocok dengan satu digit atau lebih
  4. Regex mungkin cocok dengan sebagian dari input (mis. e. , substring) atau seluruh input. Bahkan, itu bisa cocok dengan nol atau lebih substring input (dengan pengubah global)
  5. Regex ini cocok dengan substring numerik apa pun (dari angka 0 hingga 9) dari input. Sebagai contoh,
    1. Jika inputnya adalah
      find() found substring "00123" starting at index 3 and ending at index 8
      find() found substring "456" starting at index 11 and ending at index 14
      find() found substring "0" starting at index 15 and ending at index 16
      matches() found nothing
      lookingAt() found nothing
      abc**xyz456_0
      abc++xyz++_++
      _06, itu cocok dengan substring
      find() found substring "00123" starting at index 3 and ending at index 8
      find() found substring "456" starting at index 11 and ending at index 14
      find() found substring "0" starting at index 15 and ending at index 16
      matches() found nothing
      lookingAt() found nothing
      abc**xyz456_0
      abc++xyz++_++
      07
    2. Jika inputnya adalah
      find() found substring "00123" starting at index 3 and ending at index 8
      find() found substring "456" starting at index 11 and ending at index 14
      find() found substring "0" starting at index 15 and ending at index 16
      matches() found nothing
      lookingAt() found nothing
      abc**xyz456_0
      abc++xyz++_++
      _08, tidak ada yang cocok
    3. Jika inputnya adalah
      find() found substring "00123" starting at index 3 and ending at index 8
      find() found substring "456" starting at index 11 and ending at index 14
      find() found substring "0" starting at index 15 and ending at index 16
      matches() found nothing
      lookingAt() found nothing
      abc**xyz456_0
      abc++xyz++_++
      09, itu cocok dengan substring
      find() found substring "00123" starting at index 3 and ending at index 8
      find() found substring "456" starting at index 11 and ending at index 14
      find() found substring "0" starting at index 15 and ending at index 16
      matches() found nothing
      lookingAt() found nothing
      abc**xyz456_0
      abc++xyz++_++
      10,
      find() found substring "00123" starting at index 3 and ending at index 8
      find() found substring "456" starting at index 11 and ending at index 14
      find() found substring "0" starting at index 15 and ending at index 16
      matches() found nothing
      lookingAt() found nothing
      abc**xyz456_0
      abc++xyz++_++
      11 dan
      find() found substring "00123" starting at index 3 and ending at index 8
      find() found substring "456" starting at index 11 and ending at index 14
      find() found substring "0" starting at index 15 and ending at index 16
      matches() found nothing
      lookingAt() found nothing
      abc**xyz456_0
      abc++xyz++_++
      12 (tiga kecocokan)
    Perhatikan bahwa regex ini cocok dengan angka dengan nol di depan, seperti
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    13,
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    14 dan
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    15, yang mungkin tidak diinginkan
  6. Anda juga dapat menulis
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    16, di mana
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    17 dikenal sebagai karakter meta yang cocok dengan digit apa pun (sama seperti
    input = "The first and second instances"
    regex = .* matches "first and second"
    But
    regex = .*? produces two matches: "first" and "second"
    6). Ada lebih dari satu cara untuk menulis regex. Perhatikan bahwa banyak bahasa pemrograman (C, Java, JavaScript, Python) menggunakan backslash
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    8 sebagai awalan untuk escape sequence (mis. g. ,
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    _8 untuk baris baru), dan Anda harus menulis
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    21 sebagai gantinya

Contoh Kode (Python, Java, JavaScript, Perl, PHP)

Contoh Kode dengan Python

Lihat "" untuk cakupan penuh

Python mendukung Regex melalui modul

find() found substring "00123" starting at index 3 and ending at index 8
find() found substring "456" starting at index 11 and ending at index 14
find() found substring "0" starting at index 15 and ending at index 16
matches() found nothing
lookingAt() found nothing
abc**xyz456_0
abc++xyz++_++
22. Python juga menggunakan backslash (
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
_8) untuk escape sequence (mis. e. , Anda perlu menulis
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
_6 untuk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
8,
find() found substring "00123" starting at index 3 and ending at index 8
find() found substring "456" starting at index 11 and ending at index 14
find() found substring "0" starting at index 15 and ending at index 16
matches() found nothing
lookingAt() found nothing
abc**xyz456_0
abc++xyz++_++
27 untuk
find() found substring "00123" starting at index 3 and ending at index 8
find() found substring "456" starting at index 11 and ending at index 14
find() found substring "0" starting at index 15 and ending at index 16
matches() found nothing
lookingAt() found nothing
abc**xyz456_0
abc++xyz++_++
17), tetapi mendukung string mentah dalam bentuk
find() found substring "00123" starting at index 3 and ending at index 8
find() found substring "456" starting at index 11 and ending at index 14
find() found substring "0" starting at index 15 and ending at index 16
matches() found nothing
lookingAt() found nothing
abc**xyz456_0
abc++xyz++_++
29, yang mengabaikan interpretasi urutan escape - bagus untuk menulis regex

Contoh Kode di Jawa

Lihat "Regular Expressions (Regex) in Java" untuk cakupan penuh

Java mendukung Regex dalam paket

find() found substring "00123" starting at index 3 and ending at index 8
find() found substring "456" starting at index 11 and ending at index 14
find() found substring "0" starting at index 15 and ending at index 16
matches() found nothing
lookingAt() found nothing
abc**xyz456_0
abc++xyz++_++
30

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54

Keluarannya adalah

find() found substring "00123" starting at index 3 and ending at index 8
find() found substring "456" starting at index 11 and ending at index 14
find() found substring "0" starting at index 15 and ending at index 16
matches() found nothing
lookingAt() found nothing
abc**xyz456_0
abc++xyz++_++
Contoh Kode di Perl

Lihat "" untuk cakupan penuh

Perl menggunakan ekspresi reguler secara ekstensif dengan banyak sintaks dan operator bawaan. Di Perl (dan JavaScript), regex dibatasi oleh sepasang garis miring ke depan (default), dalam bentuk

find() found substring "00123" starting at index 3 and ending at index 8
find() found substring "456" starting at index 11 and ending at index 14
find() found substring "0" starting at index 15 and ending at index 16
matches() found nothing
lookingAt() found nothing
abc**xyz456_0
abc++xyz++_++
31. Anda dapat menggunakan operator bawaan

  • m/regex/modifier atau /regex/modifier. Pertandingan melawan
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    _32. x_3 adalah opsional
  • s/regex/penggantian/pengubah. Gantikan substring yang cocok dengan penggantinya

Di Perl, Anda dapat menggunakan string non-interpolasi kutipan tunggal

find() found substring "00123" starting at index 3 and ending at index 8
find() found substring "456" starting at index 11 and ending at index 14
find() found substring "0" starting at index 15 and ending at index 16
matches() found nothing
lookingAt() found nothing
abc**xyz456_0
abc++xyz++_++
34 untuk menulis regex untuk menonaktifkan interpretasi backslash (
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
8) oleh Perl

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Contoh Kode dalam JavaScript

Lihat "" untuk cakupan penuh

Dalam JavaScript (dan Perl), regex dibatasi oleh sepasang garis miring ke depan, dalam bentuk

find() found substring "00123" starting at index 3 and ending at index 8
find() found substring "456" starting at index 11 and ending at index 14
find() found substring "0" starting at index 15 and ending at index 16
matches() found nothing
lookingAt() found nothing
abc**xyz456_0
abc++xyz++_++
36. Ada dua set metode, terbitkan melalui objek
find() found substring "00123" starting at index 3 and ending at index 8
find() found substring "456" starting at index 11 and ending at index 14
find() found substring "0" starting at index 15 and ending at index 16
matches() found nothing
lookingAt() found nothing
abc**xyz456_0
abc++xyz++_++
37 atau objek
find() found substring "00123" starting at index 3 and ending at index 8
find() found substring "456" starting at index 11 and ending at index 14
find() found substring "0" starting at index 15 and ending at index 16
matches() found nothing
lookingAt() found nothing
abc**xyz456_0
abc++xyz++_++
38

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Contoh Kode di PHP

[MELAKUKAN]

Contoh. String Numerik Penuh ^[0-9]+$ atau ^\d+$

  1. Leading
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    _9 dan trailing
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    0 dikenal sebagai jangkar posisi, yang masing-masing cocok dengan posisi awal dan akhir garis. Hasilnya, seluruh string input harus dicocokkan sepenuhnya, bukan sebagian dari string input (substring)
  2. Regex ini cocok dengan string numerik yang tidak kosong (terdiri dari angka 0 hingga 9), mis. g. , "
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    _41" dan "
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    42". Tidak cocok dengan "" (string kosong), "
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    43", "
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    44", "
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    45", dll. Namun, itu juga cocok dengan "
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    46", "
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    47" dan "
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    48" dengan nol di depan

Contoh. Literal Bilangan Bulat Positif [1-9][0-9]*. 0 atau [1-9]\d*. 0

  1. find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    49 cocok dengan karakter apa pun antara 1 hingga 9; .
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    7 adalah indikator kejadian yang mewakili nol atau lebih kejadian. Bersama-sama,
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    _52 cocok dengan angka apa pun tanpa nol di depan
  2. 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    _7 mewakili operator ATAU;
  3. Ungkapan ini cocok dengan "
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    _41" dan "
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    56";
  4. Anda dapat mengganti
    input = "The first and second instances"
    regex = .* matches "first and second"
    But
    regex = .*? produces two matches: "first" and "second"
    6 dengan metakarakter
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    17, tetapi tidak
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    49
  5. Kami tidak menggunakan jangkar posisi
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    _9 dan
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    0 di regex ini. Oleh karena itu, dapat cocok dengan bagian mana pun dari string input. Sebagai contoh,
    1. Jika input string adalah "
      find() found substring "00123" starting at index 3 and ending at index 8
      find() found substring "456" starting at index 11 and ending at index 14
      find() found substring "0" starting at index 15 and ending at index 16
      matches() found nothing
      lookingAt() found nothing
      abc**xyz456_0
      abc++xyz++_++
      _45", itu cocok dengan substring
      find() found substring "00123" starting at index 3 and ending at index 8
      find() found substring "456" starting at index 11 and ending at index 14
      find() found substring "0" starting at index 15 and ending at index 16
      matches() found nothing
      lookingAt() found nothing
      abc**xyz456_0
      abc++xyz++_++
      07
    2. Jika string input adalah
      find() found substring "00123" starting at index 3 and ending at index 8
      find() found substring "456" starting at index 11 and ending at index 14
      find() found substring "0" starting at index 15 and ending at index 16
      matches() found nothing
      lookingAt() found nothing
      abc**xyz456_0
      abc++xyz++_++
      08, tidak ada yang cocok
    3. Jika string input adalah
      find() found substring "00123" starting at index 3 and ending at index 8
      find() found substring "456" starting at index 11 and ending at index 14
      find() found substring "0" starting at index 15 and ending at index 16
      matches() found nothing
      lookingAt() found nothing
      abc**xyz456_0
      abc++xyz++_++
      67, string tersebut cocok dengan substring
      find() found substring "00123" starting at index 3 and ending at index 8
      find() found substring "456" starting at index 11 and ending at index 14
      find() found substring "0" starting at index 15 and ending at index 16
      matches() found nothing
      lookingAt() found nothing
      abc**xyz456_0
      abc++xyz++_++
      07,
      find() found substring "00123" starting at index 3 and ending at index 8
      find() found substring "456" starting at index 11 and ending at index 14
      find() found substring "0" starting at index 15 and ending at index 16
      matches() found nothing
      lookingAt() found nothing
      abc**xyz456_0
      abc++xyz++_++
      11 dan
      find() found substring "00123" starting at index 3 and ending at index 8
      find() found substring "456" starting at index 11 and ending at index 14
      find() found substring "0" starting at index 15 and ending at index 16
      matches() found nothing
      lookingAt() found nothing
      abc**xyz456_0
      abc++xyz++_++
      12 (tiga kecocokan)
    4. Jika input string adalah
      find() found substring "00123" starting at index 3 and ending at index 8
      find() found substring "456" starting at index 11 and ending at index 14
      find() found substring "0" starting at index 15 and ending at index 16
      matches() found nothing
      lookingAt() found nothing
      abc**xyz456_0
      abc++xyz++_++
      71, string tersebut cocok dengan substring.
      find() found substring "00123" starting at index 3 and ending at index 8
      find() found substring "456" starting at index 11 and ending at index 14
      find() found substring "0" starting at index 15 and ending at index 16
      matches() found nothing
      lookingAt() found nothing
      abc**xyz456_0
      abc++xyz++_++
      12,
      find() found substring "00123" starting at index 3 and ending at index 8
      find() found substring "456" starting at index 11 and ending at index 14
      find() found substring "0" starting at index 15 and ending at index 16
      matches() found nothing
      lookingAt() found nothing
      abc**xyz456_0
      abc++xyz++_++
      12 dan
      find() found substring "00123" starting at index 3 and ending at index 8
      find() found substring "456" starting at index 11 and ending at index 14
      find() found substring "0" starting at index 15 and ending at index 16
      matches() found nothing
      lookingAt() found nothing
      abc**xyz456_0
      abc++xyz++_++
      74 (tiga pertandingan)

Contoh. Literal Bilangan Bulat Penuh ^[+-]?[1-9][0-9]*. 0$ atau ^[+-]?[1-9]\d*. 0$

  1. Regex ini cocok dengan literal Integer (untuk seluruh string dengan jangkar posisi), baik positif, negatif, dan nol
  2. find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    _75 cocok dengan tanda
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    6 atau
    ^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$
    0.
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    8 adalah indikator kejadian yang menunjukkan 0 atau 1 kejadian, i. e. opsional. Oleh karena itu, x0 cocok dengan tanda
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    6 atau
    ^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$
    0 terkemuka opsional
  3. Kami telah membahas tiga indikator kejadian.
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    6 untuk satu atau lebih,
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    7 untuk nol atau lebih, dan
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    8 untuk nol atau satu

Contoh. Pengidentifikasi (atau Nama) [a-zA-Z_][0-9a-zA-Z_]* atau [a-zA-Z_]\w*

  1. Mulailah dengan satu huruf atau garis bawah, diikuti dengan nol atau lebih angka, huruf, dan garis bawah
  2. Anda dapat menggunakan karakter meta
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    _85 untuk karakter kata "x"0. Ingatlah bahwa karakter meta
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    _17 dapat digunakan untuk digit
    input = "The first and second instances"
    regex = .* matches "first and second"
    But
    regex = .*? produces two matches: "first" and "second"
    6

Contoh. Nama File Gambar ^\w+\. (gif. png. jpg. jpeg)$

  1. Jangkar posisi
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    9 dan
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    0 masing-masing cocok dengan awal dan akhir string input. Artinya, regex ini akan cocok dengan seluruh string input, bukan bagian dari string input (substring)
  2. find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    _91 cocok dengan satu atau lebih karakter kata (sama seperti
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    92)
  3. 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    0 cocok dengan titik
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    94 karakter. Kita perlu menggunakan
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    _0 untuk mewakili
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    5 karena
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    5 memiliki arti khusus dalam regex.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    _8 dikenal sebagai kode pelarian, yang mengembalikan arti literal asli dari karakter berikut. Demikian pula,
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    7,
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    6,
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    8 (indikator kejadian),
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    9,
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    0 (posisi jangkar) memiliki arti khusus dalam regex. Anda perlu menggunakan kode pelarian agar cocok dengan karakter ini
  4. 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    _04 cocok dengan "
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    05", "
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    06", "
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    07" atau "
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    08".
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    _7 menunjukkan operator "ATAU". Tanda kurung digunakan untuk mengelompokkan pilihan
  5. Pengubah
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    10 setelah regex menentukan pencocokan case-insensitive (berlaku untuk beberapa bahasa seperti Perl dan JavaScript saja). Yaitu, menerima "
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    _11" dan "
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    12"

Contoh. Alamat Email ^\w+([. -]?\w+)*@\w+([. -]?\w+)*(\. \w{2,3})+$

  1. Jangkar posisi
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    9 dan
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    0 masing-masing cocok dengan awal dan akhir string input. Artinya, regex ini akan cocok dengan seluruh string input, bukan bagian dari string input (substring)
  2. find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    _91 cocok dengan 1 atau lebih karakter kata (sama seperti
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    92)
  3. 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    _17 cocok dengan karakter opsional
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    5 atau
    ^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$
    0. Meskipun titik (
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    5) memiliki arti khusus dalam regex, dalam kelas karakter (kurung siku) karakter apa pun kecuali
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    9,
    ^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$
    0,
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    4 atau
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    8 adalah literal, dan tidak memerlukan urutan escape
  4. 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    _25 cocok dengan 0 atau lebih kemunculan
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    26
  5. Sub-ekspresi
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    _27 digunakan untuk mencocokkan nama pengguna di email, sebelum tanda
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    3. Ini dimulai dengan setidaknya satu karakter kata "x"0, diikuti oleh lebih banyak karakter kata atau
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    5 atau
    ^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$
    0. Namun,
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    5 atau
    ^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$
    0 harus diikuti dengan karakter kata "x"0. Artinya, string input tidak boleh dimulai dengan
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    5 atau
    ^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$
    0; . Contoh string yang valid adalah "
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    _41"
  6. find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    3 cocok dengan dirinya sendiri. Di regex, semua karakter selain yang memiliki arti khusus cocok dengan dirinya sendiri, mis. g. ,
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    _43 cocok
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    43,
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    45 cocok
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    45, dan lain-lain
  7. Sekali lagi, sub-ekspresi
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    _27 digunakan untuk mencocokkan nama domain email, dengan pola yang sama seperti nama pengguna yang dijelaskan di atas
  8. Sub-ekspresi
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    48 cocok dengan
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    5 diikuti oleh dua atau tiga karakter kata, e. g. , "
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    _50", "
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    51", "
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    52", "
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    53", "
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    54"
  9. 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    _55 menetapkan bahwa sub-ekspresi di atas dapat terjadi satu kali atau lebih, e. g. , "
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    _50", "
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    57", "
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    58" dll

Latihan. Tafsirkan regex ini, yang memberikan representasi lain dari alamat email.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
_59

Contoh. Menukar Kata menggunakan Referensi Belakang Bertanda Kurung ^(\S+)\s+(\S+)$ dan $2 $1

  1. find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    9 dan
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    0 masing-masing cocok dengan awal dan akhir string input
  2. 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    _62 (huruf kecil
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    63) cocok dengan spasi putih (kosong, tab
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    9, dan baris baru
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    0 atau
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    8). Di sisi lain,
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    _67 (huruf besar
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    68) cocok dengan apa pun yang TIDAK cocok dengan
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    62, saya. e. , bukan spasi putih. Di regex, metakarakter huruf besar menunjukkan kebalikan dari huruf kecil, misalnya,
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    85 untuk karakter kata dan
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    71 untuk karakter non-kata;
  3. Regex di atas mencocokkan dua kata (tanpa spasi putih) yang dipisahkan oleh satu atau lebih spasi putih
  4. Tanda kurung
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    74 memiliki dua arti dalam regex
    1. mengelompokkan sub-ekspresi, e. g. ,
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      _75
    2. untuk memberikan apa yang disebut referensi belakang untuk menangkap dan mengekstrak kecocokan
  5. Tanda kurung dalam
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    _76, disebut referensi-belakang dalam tanda kurung, digunakan untuk mengekstrak substring yang cocok dari string input. Dalam regex ini, ada dua
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    76, cocok dengan dua kata pertama, dipisahkan oleh satu atau lebih spasi putih
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    78. Dua kata yang cocok diekstraksi dari string input dan biasanya disimpan dalam variabel khusus "x"9 dan 90 (atau 91 dan 92 dengan Python), masing-masing
  6. Untuk menukar dua kata, Anda dapat mengakses variabel khusus, dan mencetak "________10______83" (melalui bahasa pemrograman);
Contoh Kode dengan Python

Python menyimpan referensi belakang dalam tanda kurung di 91, 92,. Juga,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
_87 menyimpan seluruh pertandingan

Contoh Kode di Jawa

Java menyimpan referensi belakang dalam tanda kurung di "x"9, 90,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

Contoh. Alamat HTTP ^http. \/\/\S+(\/\S+)*(\/)?$

  1. Mulailah dengan
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    _90. Perhatikan bahwa Anda mungkin perlu menulis
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    _91 sebagai
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    92 dengan kode pelarian dalam beberapa bahasa (JavaScript, Perl)
  2. Diikuti oleh
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    _67, satu atau lebih spasi, untuk nama domain
  3. Diikuti oleh
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    _94, nol atau lebih "/. ", untuk sub-direktori
  4. Diikuti oleh
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    _95, opsional (0 atau 1) di belakang
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    91, untuk permintaan direktori

Contoh. Pola Regex di AngularJS

Pola regex yang agak rumit berikut digunakan oleh AngularJS dalam sintaks JavaScript

Contoh. Contoh Regex di Perl

Sintaks Ekspresi Reguler (Regex).

Ekspresi Reguler (atau Regex) adalah pola (atau filter) yang menjelaskan sekumpulan string yang cocok dengan pola tersebut. Dengan kata lain, regex menerima sekumpulan string tertentu dan menolak sisanya

Regex terdiri dari urutan karakter, metacharacters (seperti

find() found substring "00123" starting at index 3 and ending at index 8
find() found substring "456" starting at index 11 and ending at index 14
find() found substring "0" starting at index 15 and ending at index 16
matches() found nothing
lookingAt() found nothing
abc**xyz456_0
abc++xyz++_++
5,
find() found substring "00123" starting at index 3 and ending at index 8
find() found substring "456" starting at index 11 and ending at index 14
find() found substring "0" starting at index 15 and ending at index 16
matches() found nothing
lookingAt() found nothing
abc**xyz456_0
abc++xyz++_++
17,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
73,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
8, ________20___010 __________0____0____________________________. Mereka dibangun dengan menggabungkan banyak sub-ekspresi yang lebih kecil

Mencocokkan Karakter Tunggal

Blok penyusun dasar regex adalah pola yang cocok dengan satu karakter. Sebagian besar karakter, termasuk semua huruf (

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
_09 dan
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
10) dan angka (
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
11), cocok dengan dirinya sendiri. Misalnya, regex x cocok dengan substring "x";

Karakter non-alfanumerik tanpa arti khusus dalam regex juga cocok dengan dirinya sendiri. Misalnya,

find() found substring "00123" starting at index 3 and ending at index 8
find() found substring "456" starting at index 11 and ending at index 14
find() found substring "0" starting at index 15 and ending at index 16
matches() found nothing
lookingAt() found nothing
abc**xyz456_0
abc++xyz++_++
1 cocok dengan
find() found substring "00123" starting at index 3 and ending at index 8
find() found substring "456" starting at index 11 and ending at index 14
find() found substring "0" starting at index 15 and ending at index 16
matches() found nothing
lookingAt() found nothing
abc**xyz456_0
abc++xyz++_++
2;

Karakter Khusus Regex dan Urutan Pelarian

Karakter Khusus Regex

Karakter ini memiliki arti khusus dalam regex (saya akan membahas secara detail di bagian selanjutnya)

  • karakter meta. titik (
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    5)
  • daftar tanda kurung.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    23
  • posisi jangkar.
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    9,
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    0
  • indikator kejadian.
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    6,
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    7,
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    8,
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    29
  • tanda kurung. "x"_8
  • atau.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    _7
  • melarikan diri dan metakarakter. garis miring terbalik (
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    _8)
Urutan Melarikan Diri

Karakter yang tercantum di atas memiliki arti khusus dalam regex. Untuk mencocokkan karakter-karakter ini, kita perlu menambahkannya dengan backslash (

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
8), dikenal sebagai escape sequence. Misalnya,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
_2 cocok dengan
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
3;

Regex juga mengenali escape sequence umum seperti

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
8 untuk baris baru,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
9 untuk tab,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
0 untuk carriage-return,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1 untuk angka oktal hingga 3 digit,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2 untuk kode hex dua digit,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
3 untuk Unicode 4 digit,

Contoh Kode dengan Python
Contoh Kode dalam JavaScript

[MELAKUKAN]

Contoh Kode di Jawa

[MELAKUKAN]

Mencocokkan Urutan Karakter (String atau Teks)

Sub-Ekspresi

Regex dibangun dengan menggabungkan banyak sub-ekspresi atau atom yang lebih kecil. Misalnya, regex

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
_47 cocok dengan string "
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47". Pencocokan, secara default, peka terhadap huruf besar-kecil, tetapi dapat diatur ke peka huruf besar-kecil melalui pengubah

ATAU (. ) Operator

Anda dapat memberikan alternatif menggunakan operator "ATAU", dilambangkan dengan bilah vertikal

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
49. Misalnya, regex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
_50 menerima string "
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
51", "
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
52", "
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
53" atau "
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
54"

Daftar Braket (Kelas Karakter) [. ], [^. ], [. -. ]

Ekspresi tanda kurung adalah daftar karakter yang diapit oleh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
23, juga disebut kelas karakter. Ini cocok dengan karakter APA PUN dalam daftar. Namun, jika karakter pertama dari daftar adalah tanda sisipan (
find() found substring "00123" starting at index 3 and ending at index 8
find() found substring "456" starting at index 11 and ending at index 14
find() found substring "0" starting at index 15 and ending at index 16
matches() found nothing
lookingAt() found nothing
abc**xyz456_0
abc++xyz++_++
9), maka cocok dengan SATU karakter yang TIDAK ada dalam daftar. Misalnya, regex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
57 cocok dengan satu digit
find() found substring "00123" starting at index 3 and ending at index 8
find() found substring "456" starting at index 11 and ending at index 14
find() found substring "0" starting at index 15 and ending at index 16
matches() found nothing
lookingAt() found nothing
abc**xyz456_0
abc++xyz++_++
41,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
59,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
54,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
61, atau
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
62;

Alih-alih mencantumkan semua karakter, Anda bisa menggunakan ekspresi rentang di dalam tanda kurung. Ekspresi rentang terdiri dari dua karakter yang dipisahkan oleh tanda hubung (

^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$
0). Itu cocok dengan karakter tunggal apa pun yang mengurutkan antara dua karakter, inklusif. Misalnya,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
_70 sama dengan
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
71. Anda dapat menyertakan tanda sisipan (
find() found substring "00123" starting at index 3 and ending at index 8
find() found substring "456" starting at index 11 and ending at index 14
find() found substring "0" starting at index 15 and ending at index 16
matches() found nothing
lookingAt() found nothing
abc**xyz456_0
abc++xyz++_++
_9) di depan rentang untuk membalikkan pencocokan. Misalnya,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
_73 setara dengan
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
74

Sebagian besar karakter regex khusus kehilangan artinya di dalam daftar braket, dan dapat digunakan apa adanya;

  • Untuk menyertakan
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    _4, tempatkan di urutan pertama dalam daftar, atau gunakan escape
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    80
  • Untuk memasukkan
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    _9, letakkan di mana saja kecuali yang pertama, atau gunakan escape
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    82
  • Untuk menyertakan
    ^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$
    _0 di tempat terakhir, atau gunakan escape
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    84
  • Untuk menyertakan
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    _8, gunakan escape
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    6
  • Tidak perlu melarikan diri untuk karakter lain seperti
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    5,
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    6,
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    7,
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    8,
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    1,
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    2,
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    5,
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    6, dan lain-lain, di dalam daftar braket
  • Anda juga dapat memasukkan karakter meta (akan dijelaskan di bagian berikutnya), seperti
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    85,
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    71,
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    17,
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    73,
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    62,
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    01 di dalam daftar tanda kurung
Beri Nama Kelas Karakter di Daftar Braket (Hanya Untuk Perl?)

Kelas karakter bernama (POSIX) sudah ditentukan sebelumnya dalam ekspresi tanda kurung. Mereka

  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    01,
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    02,
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    03. huruf + angka, huruf, angka
  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    _04. digit heksadesimal
  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    05,
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    06. huruf besar/kecil
  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    _07. Kontrol karakter
  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    _08. karakter yang dapat dicetak, kecuali spasi
  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    _09. karakter yang dapat dicetak, termasuk spasi
  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    10. karakter yang dapat dicetak, tidak termasuk huruf dan angka
  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    _11. spasi

Misalnya,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
_12 berarti
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
13. (Perhatikan bahwa tanda kurung siku pada nama kelas ini adalah bagian dari nama simbolik, dan harus disertakan selain tanda kurung siku yang membatasi daftar tanda kurung. )

Metakarakter. , \w, \W, \d, \D, \s, \S

Karakter meta adalah simbol dengan arti khusus di dalam regex

  • Titik metakarakter (
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    _5) cocok dengan karakter tunggal apa pun kecuali baris baru
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    8 (sama dengan x8). Misalnya,
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    _17 cocok dengan 3 karakter apa pun (termasuk huruf, angka, spasi putih, tetapi kecuali baris baru);
  • find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    85 (karakter kata) cocok dengan satu huruf, angka, atau garis bawah (sama seperti "x"0). Pasangan huruf besar
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    71 (non-word-character) cocok dengan karakter tunggal apa pun yang tidak cocok dengan
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    85 (sama seperti
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    26)
  • Di regex, metakarakter huruf besar selalu merupakan kebalikan dari huruf kecil
  • find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    17 (digit) cocok dengan satu digit apa pun (sama seperti
    input = "The first and second instances"
    regex = .* matches "first and second"
    But
    regex = .*? produces two matches: "first" and "second"
    6). Pasangan huruf besar
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    73 (non-digit) cocok dengan karakter tunggal apa pun yang bukan digit (sama seperti
    input = "The first and second instances"
    regex = .* matches "first and second"
    But
    regex = .*? produces two matches: "first" and "second"
    8)
  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    _62 (spasi) cocok dengan spasi tunggal mana pun (sama seperti
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    32, kosong, tab, baris baru, carriage-return, dan form-feed). Pasangan huruf besar
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    01 (non-spasi) cocok dengan karakter tunggal apa pun yang tidak cocok dengan
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    62 (sama seperti
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    35)

Contoh

Urutan Backslash (\) dan Regex Escape

Regex menggunakan backslash (

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
8) untuk dua tujuan

  1. untuk karakter meta seperti
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    17 (digit),
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    73 (non-digit),
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    62 (spasi),
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    01 (non-spasi),
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    85 (kata),
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    71 (non-kata)
  2. untuk keluar dari karakter regex khusus, mis. g. ,
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    0 untuk
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    5,
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    2 untuk
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    6,
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    47 untuk
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    7,
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    49 untuk
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    8. Anda juga perlu menulis
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    _6 untuk
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    8 di regex untuk menghindari ambiguitas
  3. Regex juga mengenali
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    8 untuk baris baru,
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    9 untuk tab, dll

Perhatikan bahwa dalam banyak bahasa pemrograman (C, Java, Python), garis miring terbalik (

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
8) juga digunakan untuk escape sequence dalam string, misalnya. g. ,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
_56 untuk baris baru,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
57 untuk tab, dan Anda juga perlu menulis
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
58 untuk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
8. Akibatnya, untuk menulis pola regex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
_6 (yang cocok dengan satu
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
8) dalam bahasa ini, Anda perlu menulis
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
62 (dua tingkat pelarian. ). Demikian pula, Anda perlu menulis
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
63 untuk regex metacharacter
find() found substring "00123" starting at index 3 and ending at index 8
find() found substring "456" starting at index 11 and ending at index 14
find() found substring "0" starting at index 15 and ending at index 16
matches() found nothing
lookingAt() found nothing
abc**xyz456_0
abc++xyz++_++
17. Ini rumit dan rawan kesalahan

Indikator Kejadian (Operator Pengulangan). +, *, ?, {m}, {m,n}, {m,}

Sub-ekspresi regex dapat diikuti oleh indikator kejadian (alias operator pengulangan)

  • find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    _8. Item sebelumnya bersifat opsional dan paling banyak dicocokkan satu kali (mis. e. , muncul 0 atau 1 kali atau opsional)
  • find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    _7. Item sebelumnya akan dicocokkan nol kali atau lebih, mis. e. ,
    ^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$
    _7
  • find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    _6. Item sebelumnya akan dicocokkan satu kali atau lebih, mis. e. ,
    ^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$
    _3
  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    70. Item sebelumnya dicocokkan tepat m kali
  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    71. Item sebelumnya dicocokkan m kali atau lebih, i. e. , x_7
  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    73. Item sebelumnya dicocokkan setidaknya m kali, tetapi tidak lebih dari n kali

Misalnya. Regex

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
74 menerima "
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
75", "
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
76" dan "
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
77"

Pengubah

Anda dapat menerapkan pengubah ke regex untuk menyesuaikan perilakunya, seperti global, case-insensitive, multiline, dll. Cara menerapkan pengubah berbeda di antara bahasa

Di Perl, Anda dapat melampirkan pengubah setelah regex, dalam bentuk

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
78. Sebagai contoh

Di Jawa, Anda menerapkan pengubah saat mengompilasi regex

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
79. Misalnya,

Mode pengubah yang umum digunakan adalah

  • Mode Case-Insensitive (atau
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    10). pencocokan case-insensitive untuk huruf
  • Global (atau
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    _81). cocokkan Semua, bukan pertandingan pertama
  • Mode multi baris (atau x3). mempengaruhi
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    _9,
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    0,
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    85 dan
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    86. Dalam mode multiline,
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    9 cocok dengan start-of-line atau start-of-input;
  • Mode baris tunggal (atau
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    _63). Dot (
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    _5) akan cocok dengan semua karakter, termasuk baris baru
  • Mode komentar (atau x). izinkan dan abaikan komentar tersemat yang dimulai dengan
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    94 hingga end-of-line (EOL)
  • lagi

Keserakahan, Kemalasan, dan Mundur untuk Operator Pengulangan

Keserakahan Operator Pengulangan *, +, ?, {m,n}. Operator pengulangan adalah operator serakah, dan secara default menangkap karakter sebanyak mungkin untuk pertandingan. Misalnya, regex

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
_74 mencoba mencocokkan dengan "
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
77", lalu "
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
76", lalu "
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
75"

Lazy Quantifier *?, +?, ??, {m,n}?, {m,}?,. Anda dapat menambahkan

find() found substring "00123" starting at index 3 and ending at index 8
find() found substring "456" starting at index 11 and ending at index 14
find() found substring "0" starting at index 15 and ending at index 16
matches() found nothing
lookingAt() found nothing
abc**xyz456_0
abc++xyz++_++
8 setelah operator pengulangan untuk mengekang keserakahannya (mis. e. , berhenti di pertandingan terpendek). Misalnya,

input = "The first and second instances"
regex = .* matches "first and second"
But
regex = .*? produces two matches: "first" and "second"

Mundur. Jika regex mencapai keadaan di mana kecocokan tidak dapat diselesaikan, regex akan mundur dengan melepaskan satu karakter dari kecocokan rakus. Misalnya, jika regex

input = "The first and second instances"
regex = .* matches "first and second"
But
regex = .*? produces two matches: "first" and "second"
00 cocok dengan string "
input = "The first and second instances"
regex = .* matches "first and second"
But
regex = .*? produces two matches: "first" and "second"
01",
input = "The first and second instances"
regex = .* matches "first and second"
But
regex = .*? produces two matches: "first" and "second"
02 pertama cocok dengan "
input = "The first and second instances"
regex = .* matches "first and second"
But
regex = .*? produces two matches: "first" and "second"
01";

Kuantor Posesif *+, ++, ?+, {m,n}+, {m,}+. Anda dapat menambahkan

find() found substring "00123" starting at index 3 and ending at index 8
find() found substring "456" starting at index 11 and ending at index 14
find() found substring "0" starting at index 15 and ending at index 16
matches() found nothing
lookingAt() found nothing
abc**xyz456_0
abc++xyz++_++
6 ke operator pengulangan untuk menonaktifkan backtracking, bahkan dapat mengakibatkan kegagalan pertandingan. e. g,
input = "The first and second instances"
regex = .* matches "first and second"
But
regex = .*? produces two matches: "first" and "second"
_08 tidak akan cocok dengan
input = "The first and second instances"
regex = .* matches "first and second"
But
regex = .*? produces two matches: "first" and "second"
09. Fitur ini mungkin tidak didukung dalam beberapa bahasa

Position Anchors ^, $, \b, \B, \<, \>, \A, \Z

Jangkar posisi TIDAK cocok dengan karakter sebenarnya, tetapi cocok dengan posisi dalam string, seperti awal baris, akhir baris, awal kata, dan akhir kata

  • ^ dan $.
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    9 cocok dengan start-of-line.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    _0 cocok dengan end-of-line tidak termasuk baris baru, atau end-of-input (untuk input tidak diakhiri dengan baris baru). Ini adalah jangkar posisi yang paling umum digunakan. Sebagai contoh,
  • \B dan b. The "x"_5 cocok dengan batas kata (i. e. , awal kata atau akhir kata); . Sebagai contoh,
  • input = "The first and second instances"
    regex = .* matches "first and second"
    But
    regex = .*? produces two matches: "first" and "second"
    _15 dan
    input = "The first and second instances"
    regex = .* matches "first and second"
    But
    regex = .*? produces two matches: "first" and "second"
    16.
    input = "The first and second instances"
    regex = .* matches "first and second"
    But
    regex = .*? produces two matches: "first" and "second"
    15 dan
    input = "The first and second instances"
    regex = .* matches "first and second"
    But
    regex = .*? produces two matches: "first" and "second"
    16 masing-masing cocok dengan awal kata dan akhir kata (dibandingkan dengan "x"5, yang dapat cocok dengan awal dan akhir kata)
  • \A dan \Z.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    _85 cocok dengan awal input.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    _86 cocok dengan akhir input
    Mereka berbeda dari
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    9 dan
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    0 dalam hal pencocokan input dengan beberapa baris.
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    _9 cocok di awal string dan setelah setiap jeda baris, sedangkan
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    85 hanya cocok di awal string.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    _0 cocok di akhir string dan sebelum setiap jeda baris, sedangkan
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    86 hanya cocok di akhir string. Sebagai contoh,

Menangkap Kecocokan melalui Referensi-Kembali yang Dikurung & Variabel yang Cocok $1, $2,

Tanda kurung "x"8 melayani dua tujuan dalam regex

  1. Pertama, tanda kurung "x"_8 dapat digunakan untuk mengelompokkan sub-ekspresi untuk mengesampingkan prioritas atau menerapkan operator pengulangan. Misalnya,
    input = "The first and second instances"
    regex = .* matches "first and second"
    But
    regex = .*? produces two matches: "first" and "second"
    30 (menerima
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    43,
    input = "The first and second instances"
    regex = .* matches "first and second"
    But
    regex = .*? produces two matches: "first" and "second"
    32,
    input = "The first and second instances"
    regex = .* matches "first and second"
    But
    regex = .*? produces two matches: "first" and "second"
    33,. ) berbeda dari
    input = "The first and second instances"
    regex = .* matches "first and second"
    But
    regex = .*? produces two matches: "first" and "second"
    34 (menerima
    find() found substring "00123" starting at index 3 and ending at index 8
    find() found substring "456" starting at index 11 and ending at index 14
    find() found substring "0" starting at index 15 and ending at index 16
    matches() found nothing
    lookingAt() found nothing
    abc**xyz456_0
    abc++xyz++_++
    43,
    input = "The first and second instances"
    regex = .* matches "first and second"
    But
    regex = .*? produces two matches: "first" and "second"
    36,
    input = "The first and second instances"
    regex = .* matches "first and second"
    But
    regex = .*? produces two matches: "first" and "second"
    37,. )
  2. Kedua, tanda kurung digunakan untuk menyediakan apa yang disebut referensi balik (atau grup penangkap). Referensi belakang berisi substring yang cocok. Sebagai contoh, regex
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    _76 membuat satu referensi belakang
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    76, yang berisi kata pertama (non-spasi berturut-turut) dari string input; .
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    _76 dan
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    76 lainnya, berisi dua kata pertama, dipisahkan oleh satu atau lebih spasi
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    78

Referensi belakang ini (atau grup penangkap) disimpan dalam variabel khusus "x"9, 90, … (atau 91, 92,. dengan Python), di mana "x"_9berisi substring yang cocok dengan pasangan tanda kurung pertama, dan seterusnya. Misalnya,

input = "The first and second instances"
regex = .* matches "first and second"
But
regex = .*? produces two matches: "first" and "second"
_40 membuat dua referensi belakang yang cocok dengan dua kata pertama. Kata-kata yang cocok disimpan di "x"9 dan 90 (atau 91 dan 92), masing-masing

Referensi balik penting untuk memanipulasi string. Referensi balik dapat digunakan dalam string substitusi serta polanya. Sebagai contoh,

(Lanjutan) Lihat ke depan/Lihat ke belakang, Pengelompokan dan Bersyarat

Fitur ini mungkin tidak didukung dalam beberapa bahasa

Pandangan ke depan positif (?=pola)

input = "The first and second instances"
regex = .* matches "first and second"
But
regex = .*? produces two matches: "first" and "second"
_54 dikenal sebagai lookahead positif. Itu melakukan pertandingan, tetapi tidak menangkap pertandingan, hanya mengembalikan hasilnya. cocok atau tidak cocok. Ini juga disebut penegasan karena tidak menggunakan karakter apa pun dalam pencocokan. Misalnya, regex kompleks berikut digunakan untuk mencocokkan alamat email dengan AngularJS

^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$

Pola lookahead positif pertama

input = "The first and second instances"
regex = .* matches "first and second"
But
regex = .*? produces two matches: "first" and "second"
_55 menyetel panjang maksimum menjadi 254 karakter. Lookahead positif kedua
input = "The first and second instances"
regex = .* matches "first and second"
But
regex = .*? produces two matches: "first" and "second"
_56 menetapkan maksimum 64 karakter sebelum tanda
input = "The first and second instances"
regex = .* matches "first and second"
But
regex = .*? produces two matches: "first" and "second"
57 untuk nama pengguna

Pandangan negatif (?. pola)

Kebalikan dari

input = "The first and second instances"
regex = .* matches "first and second"
But
regex = .*? produces two matches: "first" and "second"
_54. Cocokkan jika
input = "The first and second instances"
regex = .* matches "first and second"
But
regex = .*? produces two matches: "first" and "second"
_59 tidak ada. Misalnya,
input = "The first and second instances"
regex = .* matches "first and second"
But
regex = .*? produces two matches: "first" and "second"
60 cocok dengan
input = "The first and second instances"
regex = .* matches "first and second"
But
regex = .*? produces two matches: "first" and "second"
61 di
input = "The first and second instances"
regex = .* matches "first and second"
But
regex = .*? produces two matches: "first" and "second"
62 (tidak mengkonsumsi
input = "The first and second instances"
regex = .* matches "first and second"
But
regex = .*? produces two matches: "first" and "second"
63); . Sedangkan
input = "The first and second instances"
regex = .* matches "first and second"
But
regex = .*? produces two matches: "first" and "second"
_65 cocok dengan
input = "The first and second instances"
regex = .* matches "first and second"
But
regex = .*? produces two matches: "first" and "second"
61 di
input = "The first and second instances"
regex = .* matches "first and second"
But
regex = .*? produces two matches: "first" and "second"
64, tetapi tidak
find() found substring "00123" starting at index 3 and ending at index 8
find() found substring "456" starting at index 11 and ending at index 14
find() found substring "0" starting at index 15 and ending at index 16
matches() found nothing
lookingAt() found nothing
abc**xyz456_0
abc++xyz++_++
43

Tampilan Positif (?<=pattern)

[MELAKUKAN]

Tampak Belakang Negatif (?pattern)

[MELAKUKAN]

Grup yang Tidak Menangkap (?. pola)

Ingatlah bahwa Anda dapat menggunakan Referensi Belakang Bertanda Kurung untuk menangkap kecocokan. Untuk menonaktifkan penangkapan, gunakan

input = "The first and second instances"
regex = .* matches "first and second"
But
regex = .*? produces two matches: "first" and "second"
_69 di dalam tanda kurung dalam bentuk
input = "The first and second instances"
regex = .* matches "first and second"
But
regex = .*? produces two matches: "first" and "second"
70. Dengan kata lain,
input = "The first and second instances"
regex = .* matches "first and second"
But
regex = .*? produces two matches: "first" and "second"
_69 menonaktifkan pembuatan grup penangkap, agar tidak membuat grup penangkap yang tidak perlu

Contoh. [MELAKUKAN]

Named Capturing Group (?pattern)

Grup tangkapan dapat direferensikan nanti oleh

input = "The first and second instances"
regex = .* matches "first and second"
But
regex = .*? produces two matches: "first" and "second"
72

Pengelompokan Atom (>pola)

Nonaktifkan backtracking, meskipun ini dapat menyebabkan kegagalan pencocokan

Bersyarat (?(Cond)lalu. kalau tidak)

[MELAKUKAN]

Unicode

Karakter meta

find() found substring "00123" starting at index 3 and ending at index 8
find() found substring "456" starting at index 11 and ending at index 14
find() found substring "0" starting at index 15 and ending at index 16
matches() found nothing
lookingAt() found nothing
abc**xyz456_0
abc++xyz++_++
85,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
71, (karakter kata dan bukan kata), "x"5,
input = "The first and second instances"
regex = .* matches "first and second"
But
regex = .*? produces two matches: "first" and "second"
13 (batas kata dan bukan kata) menggabungkan kembali karakter Unicode

Apa artinya \r dalam kode?

\r adalah carriage return yang sering kali berarti kursor harus berpindah ke kolom paling kiri, sedangkan \n adalah umpan baris yang .

Apa artinya \r string?

A carriage return ( \r ) membuat kursor melompat ke kolom pertama (awal baris) sedangkan baris baru ( \n .

Apakah karakter \r itu?

\r adalah carriage return (CR) karakter , kode karakter 13. Apa yang mereka lakukan berbeda dari sistem ke sistem. Di Windows, misalnya, baris dalam file teks diakhiri menggunakan CR diikuti segera oleh LF (mis. g. , CRLF). Pada sistem Unix dan turunannya, hanya LF yang digunakan.

Apa gunanya \r di Jawa?

Menambahkan Karakter Baris Baru dalam sebuah String . Menambahkan baris baru di Java semudah memasukkan “\n”, “\r”, atau “\r\n” di akhir string kami.