2013-06-05 16 views
14

In particolare quando^significa "inizio partita" e quando significa "non il seguente" nelle espressioni regolari?Casse in espressioni regolari

Dall'articolo di Wikipedia e altri riferimenti, ho concluso che significa il primo all'inizio e il secondo se utilizzato con parentesi, ma come fa il programma a gestire il caso in cui il punto di inserimento è all'inizio e in una parentesi ? Cosa significa, ad esempio,^[b-d] t $ corrisponde?

risposta

27

^ significa solo "non il seguente" quando all'interno e all'inizio di [], quindi [^...].

Quando è dentro [] ma non alla partenza, significa che il carattere effettivo ^.

Quando è sfuggito (\^), significa anche il carattere effettivo ^.

In tutti gli altri casi, indica l'inizio della stringa/linea (che dipende dalla lingua/dall'impostazione).

Così, in breve:

  • [^abc] -> non a, b oppure c
  • [ab^cd] -> a, b,^(carattere), C o D
  • \^ -> un carattere ^
  • Ovunque altro -> inizio della stringa/linea.

Così ^[b-d]t$ significa:

  • Inizio della linea
  • b/c/d carattere
  • t carattere
  • Fine linea
+0

Esempio: http: // regexr.com?354gb –