Czy w klasie znaków (nawiasach kwadratowych) w wyrażeniu regularnym należy zastosować znaki zmiany znaczenia?

97

Kropka .w wyrażeniu regularnym pasuje do dowolnego pojedynczego znaku. Aby wyrażenie regularne pasowało do kropki, kropka musi zostać zmieniona:\.

Zwrócono mi uwagę, że w nawiasach kwadratowych []nie trzeba uciekać kropki. Na przykład wyrażenie: [.]{3}dopasuje ...ciąg.

Naprawdę nie? A jeśli tak, czy dotyczy to wszystkich standardów wyrażeń regularnych?

Dariusz
źródło
Tak, to prawda, że ​​DOT (i większość innych znaków specjalnych) nie musi być chroniona przed ucieczką w klasie znaków.
anubhava
3
Nie ma „standardu” dla składni wyrażeń regularnych.
BoltClock
3
@BoltClock jest kilka: posix, posix extended, perl. Zobacz en.wikipedia.org/wiki/Regular_expression#Standards
Dariusz
1
@Dariusz byłeś tym, który przegłosował mnie, bo myślałeś, że się mylę? jeśli tak, chcę odzyskać moje 2 punkty :)
Paul Samsotha
@peeskillet tak, byłem, stoję poprawione. Dzięki i przepraszam.
Dariusz

Odpowiedzi:

136

W klasie znaków (nawiasy kwadratowe) dowolny znak oprócz ^, -, ]czy \jest dosłowne.

Ta strona internetowa jest doskonałym źródłem informacji i zawiera wiele informacji na temat niuansów różnych odmian wyrażeń regularnych. http://www.regular-expressions.info/refcharclass.html

lilactiger89
źródło
3
To naprawdę zależy od tego, jak obsługuje to język, ale w przypadku większości języków jest to prawda.
Patrick Oscity,
40
-jest również dosłowne, jeśli jest to ostatnia wartość
Pedro Lobito
16
A ^ jest dosłowne, jeśli nie jest to pierwsza postać
Nigel B. Peck
1
Jeśli $ wygląda jak zmienna, również należy ją zmienić. Np .: [$.]
W3Coder
1
@PedroLobito A jeśli to pierwszy, myślę
Tim Malone,