development:java:regexp

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Següent revisió
Revisió prèvia
development:java:regexp [05/06/2018 04:38] – creat matedevelopment:java:regexp [13/12/2019 07:18] (actual) – [otros ejemplos] mate
Línia 1: Línia 1:
 = RegExp = RegExp
 {{tag>java API PTE!}} {{tag>java API PTE!}}
 +
 +/via: [[https://blog.desdelinux.net/con-el-terminal-uso-de-expresiones-regulares/]]
 +
 +== básico
 +  * **.** : cualquier caracter (pero solo 1)
 +  * **%%*%%** : cualquier ristra de caracteres (desde 0)
 +  * **?** : cualquier caracter, pero de manera opcional (1 o 0) -> regexp extendidas
 +  * **[abc]** : a || b || c
 +  * **[^ac]** : NO a || NO c
 +  * **[0-9]** : rango
 +  * **<palabra1>|<palabra2>** palabra1 o palabra2 -> regexp extendidas
 +  * **\<palabra** : palabra sin que tenga nada a la izquierda (signo < escapado)
 +  * **palabra\>** : palabra sin que tenga nada a la derecha (signo > escapado)
 +  * **+** : repetido al menos una vez -> regexp extendidas<code bash>grep -E ':[0-9]+' # haría match sobre los minutos y segundos -y dos puntos - de una hora (por ejemplo, 03:32:39)</code>
 +  * **\{n\}** : repetido n veces (signos { y } escapdados en regexp básicas, no en extendidas)
 +  * **\{n,m\}** : repetido entre n y m veces
 +
 +== subexpresiones (backreference)
 +todas las mayúsculas se meten entre ( y )
 +<code bash>sed 's/\([A-Z]\)/(\1)/g' frases</code>
 +  * en la primera parte de la expresión, se escapan ( y ) pq forman parte de la subexpresión
 +  * en la segunda parte, simplemente se usan
 +
 +otra expresión de reemplazo sin subexpresiones:
 +<code bash>sed 's/.*/"&"/g' frases</code>
 +
 +== referencias/ejemplos
 +  * biblioteca de regexp: [[http://regexlib.com/]]
 +  * comprobador online, da información: [[http://gskinner.com/RegExr/]]
 +  * add-on firefox: [[https://addons.mozilla.org/en-US/firefox/addon/rext/]]
 +  * [[linux:bash:sed|]]
 +  * [[linux:bash:grep|]]
 +
 +=== otros ejemplos
 +extraer direcciones de correo de un fichero:<code bash>grep -E '\<[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}\>' FICHERO</code>
 +
  • development/java/regexp.1528198730.txt.gz
  • Darrera modificació: 05/06/2018 04:38
  • per mate