
Digamos que tengo un texto como ese:
models/players/clonespac/CloneTorsoLieutenant
{
q3map_nolightmap
q3map_onlyvertexlighting
{
map models/players/clonespac/CloneTorsoLieutenant
blendFunc GL_ONE GL_ZERO
rgbGen lightingDiffuse
}
{
map gfx/effects/clone
blendFunc GL_DST_COLOR GL_SRC_COLOR
tcGen environment
blendFunc GL_SRC_ALPHA GL_ONE
detail
alphaGen lightingSpecular
}
}
y quieroconvertir todas las letras a minúsculas, pero sólo si la línea contiene la palabra"modelos".
Resultando en esto:
models/players/clonespac/clonetorsolieutenant
{
q3map_nolightmap
q3map_onlyvertexlighting
{
map models/players/clonespac/clonetorsolieutenant
blendFunc GL_ONE GL_ZERO
rgbGen lightingDiffuse
}
{
map gfx/effects/clone
blendFunc GL_DST_COLOR GL_SRC_COLOR
tcGen environment
blendFunc GL_SRC_ALPHA GL_ONE
detail
alphaGen lightingSpecular
}
}
Sé que puedo hacer esto:
(\w)
-> \L$1
pero reemplaza todos los caracteres.
Intenté hacerlo así:
models (\w)
-> models \L$1
pero cualquier intento como ese está fallando.
Respuesta1
Puedes usar:
^.*?[Mm]odels.*?$
Explantación:
^
- inicio del partido de la línea.*?
- cualquier cosa, no codiciosa, después y antes de la palabra que estás buscando[Mm]odels
- no distingue entre mayúsculas y minúsculasmodels
. Envuélvalo en\b
s para asegurarse de que, por ejemplo,someothermodels
no coincida.$
- fin de la línea
Luego reemplácelo con:
\L$0
que en el motor Boost regex utilizado por Notepad++/Sublime Text 3 significa que \L
pondrá en minúsculas todo lo que sigue y $0
coincide completamente, es decir, líneas coincidentes completas.