Estoy trabajando en una base de código C++ que se movió recientemente de X/Motif a Qt. Estoy tratando de escribir un script Perl que reemplace todas las ocurrencias de Boolean (de X) con bool. La secuencia de comandos simplemente hace un reemplazo simple.Regex para reemplazar Boolean con bool
s/\bBoolean\b/bool/g
Existen algunas condiciones.
1) Tenemos CORBA en nuestro código y \ b coincide con CORBA :: Boolean que debería no cambiarse.
2) No debe coincidir si se encontró como una cadena (es decir, "booleano")
Actualizado:
Para # 1, que usa de búsqueda hacia atrás
s/(?<!:)\bBoolean\b/bool/g;
Para # 2 , Utilicé lookahead.
s/(?<!:)\bBoolean\b(?!")/bool/g</pre>
Esto muy probablemente funcionará para mi situación, pero ¿qué hay de las siguientes mejoras?
3) No coincide si está en el medio de una cadena (gracias nohat).
4) No coincide si en un comentario. (// o/** /)
nota al margen: http://stackoverflow.com/questions/72312/how-should-i-capitalize-perl#72757 – szabgab