Quels sont les personnages que vous devez et que vous ne pouvez pas échapper, en effet, dépend de la regex saveur que vous travaillez avec.
Pour PCRE, et la plupart des autres soi-disant Perl-compatible saveurs, d'échapper à ces classes de personnage:
.^$*+?()[{\|
et à l'intérieur de ces classes de personnage:
^-]\
Pour POSIX étendue regexes (ERE), d'échapper à ces classes de personnages (le même que PCRE):
.^$*+?()[{\|
Échapper à tout les autres personnages s'agit d'une erreur POSIX ERE.
À l'intérieur des classes de caractères, l'antislash est un caractère littéral dans les expressions régulières POSIX. Vous ne pouvez pas l'utiliser pour échapper à quoi que ce soit. Vous devez utiliser le "placement intelligent" si vous voulez inclure le caractère de classe des caractères comme des littéraux. Mettre le ^ n'importe où sauf au début, l' ] au début, et le - au début ou à la fin de la classe de personnage pour correspondre à ces littéralement, par exemple:
[]^-]
Dans POSIX de base des expressions régulières (REP), ce sont des caractères de remplacement que vous avez besoin pour échapper à supprimer leur sens:
.^$*
S'échapper des parenthèses et accolades dans les BREs leur donne un sens particulier à leur sans échappement versions ont en EREs. Certaines implémentations (par exemple, GNU) également à donner du sens à d'autres personnages quand échappé, comme \? et +. Échapper un caractère autre qu' .^$*(){} est normalement une erreur de BREs.
À l'intérieur des classes de caractères, de BREs de suivre la même règle que EREs.
Si tout cela vous fait tourner la tête, prenez une copie de RegexBuddy. Sous l'onglet Créer, cliquez sur Insérer un Jeton, puis Littérale. RegexBuddy va ajouter échappe en tant que de besoin.