vacio tab sublime regulares regular operadores numeros linea expresiones ejemplos cuadro codigo buscar regex replace sublimetext2

regex - tab - operadores de expresiones regulares



Búsqueda de expresiones regulares reemplazar en texto sublime 2 (5)

Usa los () paréntesis en tu cadena de búsqueda

¡Hay algo importante a destacar! Todos los segmentos emparejados en su cadena de búsqueda que desea usar en su cadena de reemplazo deben incluirse entre paréntesis () , de lo contrario, estos segmentos emparejados no serán accesibles con variables como $ 1, $ 2, ... ni / 1, / 2, .. y etc.

EJEMPLO:

Queremos reemplazar ''em'' con ''px'' pero conservamos los valores numéricos:

margin: 10em margin: 2em

Entonces usamos el margin: $1px como la cadena de reemplazo.

CORRECTO: abraza el segmento coincidente de $1 deseado entre paréntesis ( ) como sigue:

FIND: margin: ([0-9]*)em (Con paréntesis)

REEMPLAZAR A: margin: $1px

RESULTADO:

margin: 10px margin: 2px

INCORRECTO: el siguiente patrón de expresión regular coincidirá con las líneas deseadas pero los segmentos emparejados no estarán disponibles en la cadena reemplazada como variables como $1 :

FIND: margin: [0-9]*em (Sin paréntesis)

REEMPLAZAR A: margin: $1px

RESULTADO: ( $1 no está definido)

margin: px margin: px

Estoy buscando hacer una búsqueda reemplazar con expresiones regulares en Sublime Text 2. La documentación sobre esto es bastante anémica. Específicamente, quiero hacer un reemplazo en grupos, así que algo como convertir este texto:

Hello my name is bob

Y este término de búsqueda:

Encuentra que: my name is (/w)+

Reemplazar con: my name used to be $(1)

El término de búsqueda funciona bien, pero no puedo encontrar la manera de hacer un reemplazo usando el grupo regexp.


Aquí hay una presentación visual de la respuesta aprobada.


Por cierto, en la pregunta anterior:

Por:

Hello, my name is bob

Encontrar parte:

my name is (/w)+

Con reemplazar parte:

my name used to be /1

Volvería:

Hello, my name used to be b

Cambie encontrar parte a:

my name is (/w+)

Y reemplazar será lo que esperas:

Hello, my name used to be bob

Mientras que (/ w) + coincidirá con "bob", no es la agrupación que desea reemplazar.


Por lo general, una referencia inversa es $1 o /1 (barra invertida uno) para el primer grupo de captura (la primera coincidencia de un patrón entre paréntesis). Entonces tal vez intente:

my name used to be /1

o

my name used to be $1

ACTUALIZACIÓN: Como varias personas han señalado, su patrón de captura original es incorrecto y solo capturará la letra final del nombre en lugar del nombre completo. Debe usar el siguiente patrón para capturar todas las letras del nombre:

my name is (/w+)


Tenga en cuenta que si usa más de 9 grupos de captura, debe usar la sintaxis ${10} .

$10 o /10 o /{10} no funcionarán.