A regular expression (shortened as regex or regexp), sometimes referred to as a rational expression, is a sequence of characters that specifies a match pattern in text.
Ekspresi reguler (bahasa Inggris: regular expressioncode: en is deprecated , dipendekkan menjadi regex atau regexp; juga disebut ekspresi rasional) adalah serangkaian karakter yang mendefinisikan sebuah pola pencarian.
Usually such patterns are used by string-searching algorithms for "find" or "find and replace" operations on strings, or for input validation.
Pola tersebut biasanya digunakan oleh algoritme pencarian string untuk melakukan operasi "cari" atau "cari dan ganti" pada string, atau untuk memeriksa string masukan.
Regular expression techniques are developed in theoretical computer science and formal language theory.
Ekspresi reguler merupakan teknik yang dikembangakan dalam bidang ilmu komputer teori dan teori bahasa formal.
The concept of regular expressions began in the 1950s, when the American mathematician Stephen Cole Kleene formalized the concept of a regular language.
Konsep ini muncul pada 1950-an ketika matematikawan Amerika Stephen Cole Kleene memformalkan deskripsi sebuah bahasa reguler.
They came into common use with Unix text-processing utilities.
Konsep ini menjadi banyak digunakan untuk utilitas pengolahan teks Unix.
Different syntaxes for writing regular expressions have existed since the 1980s, one being the POSIX standard and another, widely used, being the Perl syntax.
Beberapa sintaks untuk menulis ekspresi reguler telah dibuat sejak 1980-an, salah satunya adalah standar POSIX dan yang satu lagi, yang sering digunakan, adalah sintaks Perl.
Regular expressions originated in 1951, when mathematician Stephen Cole Kleene described regular languages using his mathematical notation called regular events.
Ekspresi reguler berawal pada tahun 1951, ketika matematikawan Stephen Cole Kleene menjelaskan bahasa reguler menggunakan notasi matematikanya yang disebut regular events.
Regular expressions entered popular use from 1968 in two uses: pattern matching in a text editor and lexical analysis in a compiler.
Ekspresi reguler menjadi populer sejak tahun 1968 dalam dua jenis penggunaan: pencocokan pola dalam penyunting teks dan analisis leksikal dalam kompilator.
Among the first appearances of regular expressions in program form was when Ken Thompson built Kleene's notation into the editor QED as a means to match patterns in text files.
Salah satu kemunculan pertama ekspresi reguler dalam bentuk program adalah ketika Ken Thompson menggunakan notasi Kleene dalam penyunting QED sebagai
For speed, Thompson implemented regular expression matching by just-in-time compilation (JIT) to IBM 7094 code on the Compatible Time-Sharing System, an important early example of JIT compilation.
Demi kecepatan, Thompson mengimplementasikan pencocokan ekspresi reguler dengan melakukan kompilasi tepat waktu (JIT) ke kode IBM 7094 di Compatible Time-Sharing System, sebuah contoh awal penting dari kompilasi JIT.
He later added this capability to the Unix editor ed, which eventually led to the popular search tool grep's use of regular expressions ("grep" is a word derived from the command for regular expression searching in the ed editor:
Dia kemudian menambahkan kemampuan ini ke penyunting Unix ed, yang kemudian berujung pada peralatan pencari populer grep menggunakan ekspresi reguler ("grep" adalah kata yang diturunkan dari perintah untuk mencari ekspresi reguler di penyunting ed: g/re/p, singkatan dari "Global search for Regular Expression and Print matching lines").
Around the same time that Thompson developed QED, a group of researchers including Douglas T. Ross implemented a tool based on regular expressions that is used for lexical analysis in compiler design.
Pada saat yang sama dengan Thompson mengembangkan QED, sekelompok peneliti di antaranya Douglas T. Ross mengimplementasikan sebuah perkakas berdasar ekspresi reguler yang digunakan untuk analisis leksikal dalam perancangan kompilator.
Many variations of these original forms of regular expressions were used in Unix programs at Bell Labs in the 1970s, including lex, sed, AWK, and expr, and in other programs such as vi, and Emacs (which has its own, incompatible syntax and behavior).
Banyak variasi dari bentuk-bentuk awal ekspresi reguler digunakan di program-program Unix di Bell Labs pada 1970-an, di antaranya adalah vi, lex, sed, AWK, dan expr, dan program lainnya seperti Emacs.
Regexes were subsequently adopted by a wide range of programs, with these early forms standardized in the POSIX.2 standard in 1992.
Ekspresi reguler kemudian diadopsi oleh berbagai jenis program, dengan bentuk-bentuk awalnya distandarkan sebagai standar POSIX.2 pada tahun 1992.
In the 1980s, the more complicated regexes arose in Perl, which originally derived from a regex library written by Henry Spencer (1986), who later wrote an implementation for Tcl called Advanced Regular Expressions.
Pada 1980-an ekspresi reguler yang lebih rumit muncul dalam Perl, yang awalnya diturunkan dari sebuah pustaka ekspresi reguler yang ditulis oleh Henry Spencer (1986), yang kemudian menuliskan sebuah implementasi Advanced Regular Expressions untuk Tcl.
Software projects that have adopted Spencer's Tcl regular expression implementation include PostgreSQL.
Proyek perangkat lunak yang telah mengadopsi implementasi ekspresi reguler Tcl Spencer di antaranya adalah PostgreSQL.
Perl later expanded on Spencer's original library to add many new features.
Perl kemudian memperluas pustaka awal Spencer untuk menambahkan banyak fitur baru.
Part of the effort in the design of Raku (formerly named Perl 6) is to improve Perl's regex integration, and to increase their scope and capabilities to allow the definition of parsing expression grammars.
Salah satu bagian dari alasan mendesain Raku adalah untuk memperbaiki integrasi ekpresi reguler Perl, dan untuk meningkatkan kemampuannya untuk memungkinkan mendefinisikan tata bahasa penguraian ekspresi.
The result is a mini-language called Raku rules, which are used to define Raku grammar as well as provide a tool to programmers in the language.
Hasilnya adalah sebuah bahasa mini yang disebut aturan Raku, yang digunakan untuk mendefinisikan tata bahasa Raku serta menyediakan peralatan untuk pemrogram bahasa Raku.
The use of regexes in structured information standards for document and database modeling started in the 1960s and expanded in the 1980s when industry standards like ISO SGML (precursored by ANSI "GCA 101-1983") consolidated.
Penggunaan ekspresi reguler dalam standar informsi terstruktur untuk pemodelan dokumen dan basis data dimulai pada 1960-an dan diperluas pada 1980-an ketika standar industri seperti ISO SGML (didahului oleh "GCA 101-1983" ANSI) berkonsolidasi.
Its use is evident in the DTD element group syntax.
Penggunaannya paling terlihat dalam sintaks grup elemen DTD.
Starting in 1997, Philip Hazel developed PCRE (Perl Compatible Regular Expressions), which attempts to closely mimic Perl's regex functionality and is used by many modern tools including PHP and Apache HTTP Server.
Mulai tahun 1997, Philip Hazel mengemangkan PCRE (Perl Compatible Regular Expressions), yang mencoba menirukan fungsionalitas ekspresi reguler Perl dan digunakan dalam banyak perkakas modern seperti PHP dan Apache HTTP Server. Sekarang, ekspresi reguler didukung oleh banyak bahasa pemrograman, program pengolah teks (khususnya lekser), penyunting teks yang lebih maju, dan beberapa program lain.
Regex support is part of the standard library of many programming languages, including Java and Python, and is built into the syntax of others, including Perl and ECMAScript.
Dukungan untuk ekspresi reguler merupakan bagian dari pustaka standar banyak bahasa pemrograman, seperti Java dan Python, dan merupakan bagian dari sintaks bahasa pemrograman lainnya, seperti Perl dan ECMAScript.
In the late 2010s, several companies started to offer hardware, FPGA, GPU implementations of PCRE compatible regex engines that are faster compared to CPU implementations.
Pada akhir 2010-an, beberapa perusahaan mulai menawarkan perangkat keras, FPGA, implementasi GPU dari mesin ekspresi reguler yang kompatibel PCRE yang lebih cepat dibandingkan dengan implementasi CPU.