2012-10-18 4 views

Répondre

0

Votre remplacement ressemble probablement à un groupe de capture $15 plutôt que $1. Je ne suis pas familier avec sublimetext2 mais vous avez probablement besoin d'échapper à votre remplacement comme ceci:

s/1(.*?)px/1${1}5px/ 

Ce serait certainement la syntaxe correcte en perl qui semble être une syntaxe très similaire à celle que vous utilisez.

0

Sublime Text 2 utilise la barre oblique inverse pour désigner capturer des groupes afin \1 au lieu de $1

Trouver Quoi: (1\d*) ?px

Remplacer par: \15px

Comme il n'y a pas de groupe de capture 15 cela fonctionnera bien.

2

Cela fait un moment que cela a été demandé, mais pour quelqu'un d'autre qui rencontre un problème similaire, voici une réponse simple qui fonctionne.

Dans Sublime Text 2, la chaîne de remplacement suivante vous donnera le résultat que vous demandez.

1${1}5px 

Exemple de texte:

1px 
100px 1px and 100px 

1px 100px 1px and 100px 1px 
100px 1px and 100px1px 
100px 1px and 100px 

Trouver Quoi:

1(.*?)px 

Remplacer par:

1${1}5px 

Résultat:

15px 
1005px 15px and 1005px 

15px 1005px 15px and 1005px 15px 
1005px 15px and 1005px15px 
1005px 15px and 1005px 

Il utilise le nom substitution du groupe ${ name } au lieu de la substitution du groupe numéro $ number. Dans ce cas, le numéro un représente le nom.

Pour une raison quelconque, le moteur d'expressions rationnelles Sublime Text 2 ne fonctionne pas bien avec la substitution lorsque les nombres suivent le groupe numéroté.