2013-07-19 13 views
5

Sto provando a scrivere un'espressione regolare che troverà tutti i valori tra parentesi graffe che non iniziano con "my:". Ad esempio, voglio acquisire {this} ma non {my:monkey}.espressioni regolari Javascript per trovare parole che non iniziano con "my:"

Il modello che cattura tutto è:

\{([^\}]*)\} 

Ho problemi a farla funzionare. Il mio colpo più vicino finora è:

\{[^my:]*([^\}]*)\} 

Questo fallisce perché ignora solo i tag che iniziano con "m", "y" o ":".

Sono sicuro che c'è un comando che sto per trattare con vista "il mio:" come un blocco ..

(Nota: Deve lavorare per JavaScript)

+0

Che cosa stai cercando di fare con esso? Basta testare la stringa o fare qualche tipo di sostituzione? –

risposta

0

Si può fare qualcosa di simile:

var input = "I want to capture {this} but not {my:monkey}"; 
var output = input.replace(/{(my:)?([^}]*)}/g, function($0, $1, $2) { 
    return $1 ? $0 : "[MATCH]"; 
}); 
// I want to capture [MATCH] but not {my:monkey} 
Problemi correlati