In Java, si potrebbe provare a creare un'espressione regolare che corrisponda all'URL stackoverflow.com
utilizzando Pattern.compile("stackoverflow.com")
. Ma questo sarebbe sbagliato perché il .
ha un significato speciale nelle espressioni regolari. Il modo più semplice per risolvere questo problema è scrivere Pattern.compile(Pattern.quote("stackoverflow.com"))
che viene fornito a: Pattern.compile("\\Qstackoverflow.com\\E")
che "quotes" the entire string.Replicare la funzionalità di "Pattern.quote" di Java in un RegExp JavaScript
Voglio fare la stessa cosa in JavaScript, ma le espressioni regolari di JavaScript non assegnano alcun significato a \Q
e \E
e non sembra che ci sia un equivalente JavaScript, quindi non sono sicuro di come andare a proposito. Il mio primo pensiero (vedi la mia risposta qui sotto) è di mettere un backslash davanti a qualsiasi personaggio che abbia un significato speciale in un'espressione regolare di JavaScript, ma questo sembra potenzialmente soggetto a errori e sospetto che qualcuno possa conoscere un modo migliore.
Questo è per un'estensione per Firefox, quindi le soluzioni specifiche per Mozilla sono a posto.
Per chi si imbatte in futuro ed è curioso, ho finito per risolverlo un modo diverso. Volevo una regex che corrispondesse a "" "seguita da una stringa particolare, seguita da" "'. Ho finito per cercare qualcosa come// "[^"] + "/" (citazione, un gruppo di caratteri non quotati, quindi un'altra citazione) e quindi passare attraverso tutte le corrispondenze per trovare quello che corrisponde alla stringa specifica – MatrixFrog