
Frase Memorable 2

Linux y Git se llevan a las mil maravillas y tal es su integración, que nuestro usuario del sistema operativo es el que se usa por defecto en Git. Además ya tenemos una clave privada y pública generadas para poder trabajar con SSH.
Pero... ¿Qué pasa si mi usuario del repositorio Git con el que tengo que trabajar no es el mismo que el que uso en el sistema?
En Linux, para bien o para mal siempre se rellenará ese usuario automáticamente con el del sistema y nunca te lo preguntará. Únicamente te pedirá la clave, que obviamente no sirve de nada porque el usuario no es el que debiera.
Una forma rápida y sencilla para solucionar este inconveniente, es incluir el usuario dentro de la URL del repositorio.
ssh://user@domain:port/path/repo.git
Suele ser bueno explicitar lo máximo posible la información de conexión dentro de la URL, sobre todo el puerto si no es el de por defecto. En el caso de SSH, el puerto por defecto es 22.
Para modificar la URL del repositorio remoto podemos usar el siguiente comando:
git remote set-url origin [ssh://user@domain:port/path/repo.git]
De esta forma en vez del usuario del sistema, se usará el que especifiquemos por URL y sólo restará meter la clave para poder operar con el repositorio deseado, o si fuera el caso, subiremos la clave pública SSH al servidor del repositorio para poder operar sin usar claves.
Una de las herramientas más potentes y a la vez más avanzadas que puede tener cualquier persona que "flirtee" con código y tratamiento de texto, son las expresiones regulares. Una aplicación directa de las expresiones regulares es la detección de patrones dentro de textos o la validación de los mismo de acuerdo a un patrón.
Dicho más formalmente, las expresiones regulares son un lenguaje para la descripción de lenguajes. Una expresión regular define un lenguaje. Por ejemplo, la expresión regular /[a-z]+/
define el lenguaje formado por las cadenas que consisten en repeticiones de una o mas letras minúsculas.
En el ejemplo la expresión sólo nos encontraría aquellas palabras que tuviesen todas las letras en minúsculas. En este conjunto por consiguiente se excluirían todos los nombres propios, las primeras palabra tras un punto por ir escribirse en mayúsculas o incluso aquellas palabras que van todas sus letras en mayúsculas. Para ello basta incluir en la expresión anterior el conjunto de la mayúsculas, pudiendo aparecer ninguna mayúscula o n mayúsculas del conjunto de las letras mayúsculas. La expresión quedaría tal que así /[A-Z]*[a-z]+/
. A continuación se adjuntan un par de tablas con la sintaxis que define las expresiones regulares. Puede ayudaros a entender mejor las dos que os he presentado y puede ayudaros a generar otras nuevas.
Algunos metasímbolos usados en las expresiones regulares
* | El elemento precedente debe aparecer 0 o más veces |
+ | El elemento precedente debe aparecer 1 o más veces |
. | Un carácter cualquiera excepto salto de línea |
? | Operador unario. El elemento precedente es opcional |
{n} | Que coincida exactamente n veces |
{n,} | Que coincida al menos n veces |
{n,m} | Que coincida al menos n veces y no mas de m |
| | O uno u otro |
^ | Comienzo de línea |
$ | Fin de línea |
. | Cualquier carácter que no sea el retorno de carro |
[...] | Conjunto de caracteres admitidos |
[^...] | Conjunto de caracteres no admitidos |
- | Operador de rango |
(...) | Agrupación |
\ | Escape |
\n | Representación del carácter fin de línea |
\t | Representación del carácter de tabulación |
Abreviaturas para las clases más comunes en las expresiones regulares
Código | Significado |
\d | [0-9] Dígitos del 0 al 9 |
\D | [^0-9] Carácter que no sea un dígito |
\w | [a-zA-Z0-9_] Carácter alfanumérico |
\W | [^a-zA-Z0-9_] Carácter no alfanumérico |
\s | [ \t\n\r\f] Espacio en blanco |
\S | [^ \t\n\r\f] Carácter que no es un espacio en blanco |
No obstante la definición de estas expresiones, dependiendo de la dificultad del patrón a definir, puede no siempre ser trivial. A esto se le suma la experiencia que pueda tener cada uno para definir dichas expresiones. Por eso herramientas como RegExr me parecen imprescindibles: una herramienta online para aprender, construir y probar expresiones regulares.
RegExr: http://regexr.com
Algunas de las características más destacadas de RegExr son:
Si queréis recordar/practicar expresiones regulares, o simplemente queréis aprender practicando, os animo a que hagáis algunas pruebas con la herramienta. Recordad que podéis probar a usar las dos expresiones que aparecen en esta entrada si no sabéis por donde empezar.