Apakah titik harus di-escape dalam kelas karakter (tanda kurung siku) dari ekspresi reguler?

97

Titik .dalam ekspresi reguler cocok dengan satu karakter apa pun. Agar ekspresi reguler cocok dengan sebuah titik, titik tersebut harus di-escape:\.

Telah ditunjukkan kepada saya bahwa di dalam tanda kurung siku, []sebuah titik tidak harus dilepaskan. Misalnya, ekspresi: [.]{3}akan cocok dengan ...string.

Benarkah? Dan jika demikian, apakah benar untuk semua standar regex?

Dariusz
sumber
Ya, itu benar bahwa DOT (dan kebanyakan karakter khusus lainnya) tidak perlu di-escape di kelas karakter.
anubhava
3
Tidak ada "standar" untuk sintaks ekspresi reguler.
BoltClock
3
@BoltClock ada beberapa: posix, posix extended, perl. Lihat en.wikipedia.org/wiki/Regular_expression#Standards
Dariusz
1
@Dariusz, apakah Anda orang yang memilih saya karena Anda pikir saya salah? jika demikian, saya ingin 2 poin saya kembali :)
Paul Samsotha
@ peeskillet ya saya, saya berdiri dikoreksi. Terima kasih dan maaf.
Dariusz

Jawaban:

136

Dalam kelas karakter (tanda kurung) karakter apapun kecuali ^, -, ]atau \adalah literal a.

Situs web ini adalah referensi yang brilian dan memiliki banyak info tentang nuansa rasa regex yang berbeda. http://www.regular-expressions.info/refcharclass.html

lilactiger89
sumber
3
Ini sangat tergantung pada bagaimana bahasa menanganinya, tetapi untuk kebanyakan bahasa ini benar.
Patrick Oscity
40
-juga literal jika itu nilai terakhir
Pedro Lobito
16
Dan ^ literal jika bukan karakter pertama
Nigel B. Peck
1
Jika $ terlihat seperti variabel, itu juga perlu di-escape. Misalnya: [$.]
W3Coder
1
@PedroLobito Dan jika itu yang pertama, saya pikir
Tim Malone