¿Hay alguna implementación de expresiones regulares que permita reemplazar el grupo en expresiones regulares con una versión en minúsculas de este?implementación de expresiones regulares para reemplazar el grupo con su versión en minúsculas
Respuesta
En Perl, que puede hacer:
$string =~ s/(some_regex)/lc($1)/ge;
La opción /e
provoca la expresión de reemplazo debe ser interpretado como código de Perl para ser evaluado, cuyo valor de retorno se utiliza como valor de sustitución final. lc($x)
devuelve la versión en minúscula de $x
. (No estoy seguro, pero supongo que lc()
manejará caracteres internacionales correctamente en las versiones recientes de Perl.)
/g
significa que coinciden globalmente. Omita g
si solo desea un reemplazo único.
En Perl, hay
$string =~ tr/[A-Z]/[a-z]/;
implementaciones más expresiones regulares le permiten pasar de una función de devolución de llamada cuando se hace una sustituyen, por lo tanto, sólo tiene que devolver una versión en minúsculas del partido de la devolución de llamada.
s/most/some/gi? – Rhubbarb
Si su versión de expresiones regulares lo soporta, puede usar \ L, al igual que en una cáscara de POSIX:
sed -r 's/(^.*)/\L\1/'
+1 para solución no Perl. Funciona en Kate: "\ L \ 1" –
Parece que funciona en una cantidad sorprendente de kits de expresiones regulares, incluso si no se encuentra en un entorno similar a un caparazón. – Tim
@Tim: De acuerdo, incluso Notepad ++ lo admite. –
Si está utilizando un editor como Sublime Text o TextMate , hay una buena probabilidad puede usar
\L$1
como su reemplazo, donde $1
se refiere a algo de la expresión regular que se pone entre paréntesis. Por ejemplo, , aquí hay algo que utilicé para descifrar nombres de campos en algunos SQL, haciendo que todo esté a la derecha del 'como' al final de cualquier línea dada. En primer lugar el "hallazgo" expresión regular:
(as|AS) ([A-Za-z_]+)\s*,$
y luego la expresión de reemplazo:
$1 '\L$2',
Si utiliza Vim (o presumiblemente gvim), entonces usted desea utilizar en lugar de \L\1
\L$1
, pero hay otra dificultad que deberá tener en cuenta: Vim revierte la sintaxis entre los caracteres de paréntesis literales y los caracteres de paréntesis escapados. Por lo tanto, para designar una parte de la expresión regular que se incluirá en el reemplazo ("capturado"), usará \(
al principio y \)
al final. Piense en \
como — en lugar de escapar de un carácter especial para convertirlo en literal — marcando el comienzo de un carácter especial (como en \s
, \w
, \b
, etc.). Así que puede parecer extraño si no estás acostumbrado, pero en realidad es perfectamente lógico si piensas en ello de la manera Vim.
He probado esto en tanto TextMate y Sublime Text y funciona como está, pero algunos editores uso
\1
en lugar de
$1
. Pruebe ambos y vea cuál usa su editor.
Acabo de sacar esta expresión regular de mi historial. Siempre modifico regexen mientras los uso, y no puedo prometer esto a la versión final, por lo que no estoy sugiriendo que sea adecuado para el propósito descrito, y especialmente no con SQL formateado de forma diferente al SQL en el que estaba trabajando, solo que es un ejemplo específico de downcasing en expresiones regulares. YMMV. UAYOR.
Nice, Intellij IDEA también lo admite –
- 1. Notepad ++ expresiones regulares reemplazar
- 2. Java expresiones regulares reemplazar
- 3. JavaScript reemplazar/expresiones regulares
- 4. vim reemplazar expresiones regulares
- 5. Scala expresiones regulares reemplazar con función anónima
- 6. Buscar y reemplazar con expresiones regulares y el texto sublime
- 7. expresiones regulares entre mayúsculas y minúsculas
- 8. Buscar y reemplazar expresiones regulares en línea
- 9. Encontrar y reemplazar expresiones regulares en Postgres
- 10. detalles de implementación de expresiones regulares
- 11. SQL buscar y reemplazar el límite de grupo de captura de expresiones regulares?
- 12. expresiones regulares en Javascript con jQuery Contiene expresiones regulares extensión
- 13. ¿Cómo reemplazar las letras mayúsculas por minúsculas usando expresiones regulares en Eclipse?
- 14. Visual Studio, Buscar y reemplazar, expresiones regulares
- 15. Buscar y reemplazar números en cadena con expresiones regulares
- 16. rubí expresiones regulares buscar y reemplazar
- 17. usando expresiones regulares en el Grupo por la cláusula
- 18. expresiones regulares (expresiones regulares), reemplace la segunda aparición en javascript
- 19. Cómo encontrar reemplazar utilizando grupos de expresiones regulares en vim
- 20. ¿Cómo se captura un grupo con expresiones regulares?
- 21. Partes del número de versión coincidente con expresiones regulares
- 22. cadena JavaScript reemplazar con expresiones regulares a quitarse caracteres ilegales
- 23. cómo sustituir en un grupo de expresiones regulares en Python
- 24. simples expresiones regulares - reemplazar subrayado con un espacio
- 25. Reemplazar condicionalmente las coincidencias de expresiones regulares en la cadena
- 26. expresiones regulares para que coincida con EOF
- 27. Escapar cadena de expresiones regulares en Python
- 28. Cómo expresiones regulares sustituir el punto grupo partido con el resultado del método
- 29. PHP de expresiones regulares - Repetición del partido de un grupo
- 30. Java 6 varias coincidencias de expresiones regulares de un grupo
que por supuesto no funciona para caracteres internacionales .. –
¿El [A-Z]? Fue un ejemplo. Dicho eso, voté por la respuesta de j_random_hacker. –