Bir normal ifadenin karakter sınıfında (köşeli parantezler) bir noktanın önüne geçilmesi gerekir mi?


97

.Normal ifadedeki bir nokta , herhangi bir tek karakterle eşleşir. Normal ifadenin bir noktayla eşleşmesi için noktanın öncelenmesi gerekir:\.

Bana , köşeli parantezlerin içinde []bir noktanın atlanmasının gerekmediği belirtildi. Örneğin, ifade: dizeyle [.]{3}eşleşir ....

Değil mi gerçekten? Ve eğer öyleyse, tüm normal ifade standartları için doğru mu?


Evet, DOT'un (ve diğer birçok özel karakterin) karakter sınıfında kaçılmasına gerek olmadığı doğrudur.
anubhava

3
Normal ifade sözdizimi için "standart" yoktur.
BoltClock

3
@BoltClock bazıları vardır: posix, posix extended, perl. Bkz. En.wikipedia.org/wiki/Regular_expression#Standards
Dariusz

1
@Dariusz, yanlış olduğumu düşündüğün için bana oy veren sen miydin? eğer öyleyse, 2
puanımı

@peeskillet evet öyleydim, düzeltildim. Teşekkürler ve üzgünüm.
Dariusz

Yanıtlar:


136

Bir karakter sınıfında (köşeli parantez) ^, dışında herhangi bir karakter -, ]veya \bir değişmezdir.

Bu web sitesi mükemmel bir referanstır ve farklı normal ifade tatlarının nüansları hakkında birçok bilgi içerir. http://www.regular-expressions.info/refcharclass.html


3
Bu gerçekten dilin onu nasıl ele aldığına bağlıdır, ancak çoğu dil için bu doğrudur.
Patrick Oscity

40
-aynı zamanda son değer ise değişmezdir
Pedro Lobito

16
Ve ^ ilk karakter değilse gerçek anlamındadır
Nigel

1
$ Bir değişken gibi görünüyorsa, onun da öncelenmesi gerekir. Örneğin: [$.]
W3Coder

1
@PedroLobito Ve eğer ilkse, sanırım
Tim Malone
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.