2 poin oleh GN⁺ 2023-09-12 | 1 komentar | Bagikan ke WhatsApp
  • Artikel ini membahas cara menghitung perbedaan dan irisan dari dua regular expression (regex).
  • Penulis menunjukkan prosesnya dengan memberikan persamaan dan hasil seperti α < β = false, α = β = true, α > β = false, α & β = α ^ β = ∅, dan α - β = ∅.
  • Artikel ini juga mencakup pengantar singkat tentang tata bahasa regular expression berikut:
    • . cocok dengan karakter tunggal apa pun
    • xy adalah konkatenasi: cocok dengan x lalu y
    • x|y adalah alternasi: cocok dengan x atau y
    • x* adalah Kleene star: cocok dengan x sebanyak 0 kali atau lebih
    • (xyz) adalah pengelompokan: memperlakukan xyz sebagai satu item tunggal
    • () adalah regular expression kosong yang cocok dengan string kosong
    • x+ adalah Kleene plus: cocok dengan x sebanyak 1 kali atau lebih
    • x? adalah opsional: secara opsional cocok dengan x
    • x{n} adalah perpangkatan: mengonkatenasikan x dengan dirinya sendiri sebanyak n kali
    • x{m,n} adalah pengulangan: mengonkatenasikan x dengan dirinya sendiri dari m hingga n kali
    • [a-z0-9] adalah pengelompokan: cocok dengan karakter tunggal apa pun di dalam grup
    • [^a-z0-9] adalah pengelompokan negasi: cocok dengan karakter tunggal apa pun yang bukan karakter di dalam grup
    • \c adalah escape: cocok dengan karakter spesial c
    • \u001a adalah escape Unicode: cocok dengan karakter UTF-16 tersebut
    • a, b, c berarti semua karakter lain cocok dengan dirinya sendiri.
  • Artikel ini juga menyebutkan fitur-fitur yang tidak didukung, seperti anchor, zero-width assertion, backreference, ekstraksi subgrup, pencarian atau pencocokan parsial, serta flag lain yang mengubah perilaku.
  • Untuk informasi lebih lanjut, penulis menyarankan untuk merujuk ke halaman GitHub antimirov.
  • Penulis artikel ini adalah Eiríkr Åsheim, yang dikenal sebagai @d6 di Twitter dan Mastodon.

1 komentar

 
GN⁺ 2023-09-12
Komentar Hacker News
  • Artikel ini membahas alat untuk menghitung selisih dan irisan dari dua regular expression (regex).
  • Para pengguna melaporkan bahwa alat ini bisa berhenti saat mencoba menangani regex yang kompleks, seperti memfilter angka yang habis dibagi 3.
  • Alat ini dapat digunakan untuk membuat hierarki kelas string yang berguna untuk memvalidasi jenis string tertentu seperti alamat email atau URL.
  • Seorang pengguna membuat demo web serupa yang menunjukkan proses mem-parsing regex ke berbagai bentuk dan pada akhirnya menghasilkan kode dalam berbagai bahasa.
  • Regular expression mendapat pengakuan karena kemampuannya mengemas teori matematika yang kompleks ke dalam antarmuka praktis yang mirip dengan aljabar linear.
  • Beberapa pengguna terkejut dengan kompleksitas regex union dan intersection yang dihasilkan alat ini, dan menyarankan bahwa menghasilkan regular expression yang minimal mungkin merupakan tantangan yang lebih besar.
  • Alat ini menyediakan representasi grafis dari Deterministic Finite Automaton (DFA) untuk regex yang diberikan, dan para pengguna menilainya mengesankan.
  • Beberapa pengguna menemukan bahwa alat ini kesulitan menangani regex untuk URL dan alamat email yang valid secara sintaksis.
  • Untuk meningkatkan kegunaan di perangkat seluler, disarankan agar fitur saran otomatis dimatikan pada kolom input regex.
  • Seorang pengguna membagikan pengalamannya menggunakan konsep irisan regex untuk menulis logika validasi bagi pengaturan "IP RegEx filter", yang membantu mencegah keluhan pengguna bahwa filter tersebut tidak berfungsi.