Estoy tratando de reemplazar letras mayúsculas con letras minúsculas correspondientes usando expresiones regulares. Así que eso
EarTH: 1,
MerCury: 0.2408467,
venuS: 0.61519726,
se convierte
earth: 1,
mercury: 0.2408467,
venus: 0.61519726,
en texto sublime. ¿Cómo puedo escribir letras minúsculas solo en palabras que contienen letras mayúsculas y minúsculas? Para que afecte venUsy no VENUS.
regex
sublimetext3
sublimetext2
sublimetext
leemour
fuente
fuente

\U$1\L$2\E$3Supuse que esto también podría ser útil para otros:
encontrar:
([A-Z])(.*)reemplazar:
\L$1$2-> va a convertir todas las letras en$1y$2en minúsculasPERO
\l$1$2-> solo convertirá la primera letra de$1a minúscula y dejará todo lo demás como estáLo mismo ocurre con mayúsculas
\Uy\ufuente
\l$1$2$1en este caso solo haría el todo en minúsculas, porque$icontiene solo una letra.\l=> primera letra siguiente en minúscula y\u=> primera letra siguiente en mayúscula. Donde\Uy\Ihaciéndolo a todas las siguientes letras.\Etermina una\Lo\Usecuencia.Antes de buscar con expresiones regulares como
[A-Z], debe presionar el botón de mayúsculas y minúsculas (o Alt+ C) (como leemour sugirió muy bien que se edite en la respuesta aceptada). Para ser claros, les dejo algunos otros ejemplos:(\s)([a-z])(\stambién coincide con nuevas líneas, es decir, "venuS" => "VenuS")$1\u$2(\s)([A-Z])$1\l$2([a-z])([A-Z])$1\l$2(\w)([A-Z]+)$1\L$2\L$0(\w)([A-Z]+)$1\U$2(\w+)([A-Z])\U$1$2(\w+)([A-Z])\L$1$2([A-Z])(\w+)$1\U$2([A-Z])(\w+)$1\L$2([a-z\s])([A-Z])(\w)$1\l$2\u$3(\w)([A-Z])([a-z\s])\u$1\l$2$3Con respecto a la pregunta (unir palabras con al menos una letra mayúscula y una minúscula y hacerlas minúsculas), la respuesta de comentario de leemour es la respuesta correcta . Solo para aclarar, si solo hay un grupo para reemplazar, puede usarlo
?:en los grupos internos (es decir, grupos que no son de captura ) o evitar crearlos:((?:[a-z][A-Z]+)|(?:[A-Z]+[a-z]))O([a-z][A-Z]+|[A-Z]+[a-z])\L$12016-06-23 Editar
Tyler sugirió al editar esta respuesta una expresión de búsqueda alternativa para el n. ° 4:
(\B)([A-Z]+)De acuerdo con la documentación ,
\Bbuscará un carácter que no se encuentre en el límite de la palabra (es decir, no al principio ni al final). Puede usar el botón Reemplazar todo y hace exactamente lo mismo que si tuviera(\w)([A-Z]+)como expresión de búsqueda.Sin embargo, la desventaja
\Bes que no permite reemplazos individuales, tal vez debido a la restricción "no límite" del hallazgo (edite esto si conoce el motivo exacto).fuente
Expresión regular
Encuentra :
\w+Reemplazar :
\L$0\LConvierte todo a minúsculas$0Grupos de capturafuente
En BBEdit funciona esto (ej .: cambiar los valores de ID a minúsculas):
Buscar cualquier valor:
<a id="(?P<x>.*?)"></a>reemplazar con el mismo en minúsculas:<a id="\L\P<x>\E"></a>Fue: se
<a id="VALUE"></a>convirtió en:<a id="value"></a>fuente
Prueba esto
([A-Z])([A-Z]+)\b$1\L$2Asegúrese de que la sensibilidad a mayúsculas y minúsculas esté activada (Alt + C)
fuente
\Les para minúsculas. Actualicé la pregunta.