elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Hilo oficial: Solicitudes de Expresiones Regulares
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 2 [3] Ir Abajo Respuesta Imprimir
Autor Tema: Hilo oficial: Solicitudes de Expresiones Regulares  (Leído 32,161 veces)
WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.605


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Hilo oficial: Solicitudes de Expresiones Regulares
« Respuesta #20 en: 8 Octubre 2015, 05:24 am »

Yo llegué hasta acá:

http://regexr.com/3buj9
Código:
/(.*)?\s+-\s+(.+)?(featuring\s.*|feat\s.*|feat\..*)/ig

Entre intentar buscar los que dicen o no dicen feat y los que tienen guion al comienzo y los que no, llegué a la conclusión de que era necesario por lo menos 3 expresiones distintas para poder hacer match y dependiendo del match hacer el reemplazo. Ya es tarde, mañana veré si les doy una mano porque ando hasta el cuello con trabajos.


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: Hilo oficial: Solicitudes de Expresiones Regulares
« Respuesta #21 en: 8 Octubre 2015, 12:52 pm »

Muchas gracias WHK, probaré esa expresión.

De todas formas la solución actual que tengo ahora mismo es con esta expresión, en la cual me ayudaron a construirla:
Código:
^(.+)\s+-\s+(.+?)\s+[fF](t|eat(uring)?)?\.?([^([\])\n]+)(.+)?$

Pero hay un problema, según parece es imposible construir una expresión regular que sea 100% eficiente debido a la cantidad de guiones y espacios que pueden contener los nombres de archivos (como yo decía al principio), al menos eso es lo que me dijo el que me ayudó con esa expresión, entonces yo mismo desarrollé el siguiente script en pascal-script para ignorar los nombres de archivos que contengan más de un " - " ya que la eficiencia para estos renombramientos de archivo necesito que sea perfecta, prefiero omitir reemplazamientos y revisar manualmente los nombres que se omitieron.

Estoy convencido que si alguien suele descargar archivos de audio, entonces esta expresión, o la de @Explorer y la de @WHK les podrá servir de mucha ayuda!.

(este script se utiliza con la aplicación Renamer Pro: http://www.den4b.com/?x=products )
Código
  1. // Formats an audio filename that has the "...featuring artist" part at the end of filename.
  2. //------------------------------------------------------------------------------------------
  3.  
  4.  
  5. // Pseudo-Example:
  6. //
  7. // From: [0]ARTIST_NAME  [1]DASH  [2]TRACK_TITLE  [3]FEAT_ARTIST  [4]POSSIBLE_ADDITIONAL_INFO_INSIDE:()[]{}
  8. // To:   [0]ARTIST_NAME  [3]FEAT_ARTIST  [1]DASH  [2]TRACK_TITLE  [4]POSSIBLE_ADDITIONAL_INFO_INSIDE:()[]{}
  9.  
  10. // Real-Example:
  11. //
  12. // From: Carbin & Sirmark - Sorry Feat. Sevener.mp3
  13. // To:   Carbin & Sirmark Feat. Sevener - Sorry.mp3
  14.  
  15. // Known limitations:
  16. //
  17. // • If [0]ARTIST_NAME or [2]TRACK_TITLE parts contains any " - " the script will not work properlly.
  18. //   By default the script prevents any replacement on that kind of filenames, so don't worry.
  19.  
  20.  
  21. var
  22.  rgxPattern: string;
  23.  rgxReplace: string;
  24.  dashCount: integer;
  25.  baseName: string;
  26.  extension: WideString;
  27.  
  28. begin
  29.  
  30.  baseName  := WideExtractBaseName(FileName)
  31.  extension := WideExtractFileExt(FileName);
  32.  
  33.  // The regular expression that matches the filename parts.
  34.  // http://stackoverflow.com/questions/32807698/regex-pattern-to-limit-dashes-in-these-circumstances
  35.  rgxPattern := '^(.+)\s+-\s+(.+?)\s+[fF](t|eat(uring)?)?\.?([^([\])\n]+)(.+)?$'
  36.  rgxReplace := '$1 Feat.$5 - $2$6'
  37.  
  38.  // The amount of " - " that contains the filename.
  39.  dashCount := high(MatchesRegEx(baseName, '\s-\s' , false));
  40.  
  41.  // If only one " - " is found then...
  42.  If (dashCount = 0) Then
  43.    begin // Do the replacement.
  44.      baseName := ReplaceRegEx(baseName, rgxPattern, rgxReplace, false, true)
  45.      FileName := baseName + extension;
  46.    end;
  47.  
  48. end.

Saludos!


« Última modificación: 8 Octubre 2015, 12:55 pm por Eleкtro » En línea



ThinkByYourself

Desconectado Desconectado

Mensajes: 191


Ver Perfil
Re: Hilo oficial: Solicitudes de Expresiones Regulares
« Respuesta #22 en: 23 Abril 2017, 16:04 pm »

Hola!

Hace tiempecillo que no se toca este hilo.

El caso es que busco la expresión de regular de la expresión regular de javascript en javascript.

Me sería de mucha ayuda, y la verdad que es una búsqueda que en gogle no me se da bien...

A ver si alguien me sabe decir.

Un saludo!
« Última modificación: 23 Abril 2017, 16:06 pm por NoBullshit » En línea

No te voy a engañar.
Todos hemos sido programados para normalizar la psicopatía de las élites económicas y políticas, y para realimentar su patrón de ciega codicia.
#!drvy


Desconectado Desconectado

Mensajes: 5.855



Ver Perfil WWW
Re: Hilo oficial: Solicitudes de Expresiones Regulares
« Respuesta #23 en: 23 Abril 2017, 16:46 pm »

Citar
El caso es que busco la expresión de regular de la expresión regular de javascript en javascript.

¿Podrías poner ejemplos o explicarlo mejor? Eso no tiene mucho sentido.

Saludos
En línea

ThinkByYourself

Desconectado Desconectado

Mensajes: 191


Ver Perfil
Re: Hilo oficial: Solicitudes de Expresiones Regulares
« Respuesta #24 en: 23 Abril 2017, 21:57 pm »

Claro! La expresión regular sería para encontrar expresiones regulares de js en un string. Pero la expresión regular tendría que servir como RegExp de js. Las que al vuelo simplemente /miregex/g.
En línea

No te voy a engañar.
Todos hemos sido programados para normalizar la psicopatía de las élites económicas y políticas, y para realimentar su patrón de ciega codicia.
WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.605


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Hilo oficial: Solicitudes de Expresiones Regulares
« Respuesta #25 en: 23 Abril 2017, 22:07 pm »

Código:
(\/.*?\/.*)

Así?

http://regexr.com/3fqc1
« Última modificación: 23 Abril 2017, 22:09 pm por WHK » En línea

ThinkByYourself

Desconectado Desconectado

Mensajes: 191


Ver Perfil
Re: Hilo oficial: Solicitudes de Expresiones Regulares
« Respuesta #26 en: 24 Abril 2017, 19:24 pm »

Si, algo así, pero debería cubrir todas las opciones. Lo tricky viene cuando:

/\\\// --> debería pasar
/\\/ --> debería pasar
/\\\/ --> no debería pasar porque no está cerrada

Y tengo mis dudas. Se debe hacer con los operadores especiales supongo, de ? y !, que no los pillo porque en unos sitios van y en otros no.
Sólo puede cerrarse con /, pero no valdría decirle [^/]+.
Sería algo que aceptara \/ o cualquier cosa que no sea / hasta encontrar /.

(Que en verdad no sería eso, porque dentro de [ y ] el / creo que sí se puede poner. Y ahí se vuelve un poco locura. Pero yo la he visto esa regex. Existe xD).

La solución que das es la que tengo provisional. A ver si la encuentro



Estoy desde el móvil. Pero la encontré. Aquí está:



Lo que pasa que está escrita en CoffeeScript, ojo. Para js hay que adaptarla.

Pro esta debería ser, la regex de las regex de js.


Saludos!

MOD: Imagen redimensionada a lo permitido.
Mod: No hacer doble post.
« Última modificación: 25 Abril 2017, 03:30 am por #!drvy » En línea

No te voy a engañar.
Todos hemos sido programados para normalizar la psicopatía de las élites económicas y políticas, y para realimentar su patrón de ciega codicia.
Miseryk

Desconectado Desconectado

Mensajes: 225


SI.NU.SA U.GU.DE (2NE1 - D-Unit)


Ver Perfil
Re: Hilo oficial: Solicitudes de Expresiones Regulares
« Respuesta #27 en: 22 Junio 2018, 16:35 pm »

Buenas, estaba buscando una expresión que no sé como terminarla, para no volver a postear todo, lo había posteado acá por error: https://foro.elhacker.net/scripting/regex-t484967.0.html
En línea

Can you see it?
The worst is over
The monsters in my head are scared of love
Fallen people listen up! It’s never too late to change our luck
So, don’t let them steal your light
Don’t let them break your stride
There is light on the other side
And you’ll see all the raindrops falling behind
Make it out tonight
it’s a revolution

CL!!!
~

Desconectado Desconectado

Mensajes: 85


Ver Perfil WWW
Re: Hilo oficial: Solicitudes de Expresiones Regulares
« Respuesta #28 en: 6 Enero 2023, 14:46 pm »

Necesito hacer un chat con inteligencia artificial simple:

http://190.53.102.175/chat/chat.php
http://190.53.102.175/api/bin/i.a/prg.js


Expresión regular de JavScript para encontrar cualquier cadena para subdominios,
por ejemplo para encontrar:

yotube.com/watch?v=
yotube.com.mx/watch?v=


Por ejemplo, equivalente a:

youtube.com*/watch?*v=
« Última modificación: 6 Enero 2023, 15:25 pm por ~ » En línea

Donar con PayPal para que siga trabajando:
https://www.ebay.com/usr/udocproject3

Streams en vivo de programación:
PC 1 - PC 2

http://www.youtube.com/@AltComp126/streams
~

Desconectado Desconectado

Mensajes: 85


Ver Perfil WWW
Re: Hilo oficial: Solicitudes de Expresiones Regulares
« Respuesta #29 en: 12 Enero 2023, 14:19 pm »

Tutorial:

Buscar cualquier cadena de caracter ASCII opcionales:
[\x20-\x7F]* - para sustituir cualquier subcadena ASCII imprimible
[\x00-\x7F]* - para sustituir cualquier subcadena ASCII

Buscar cadenas ASCII obligatorias con tamaño específico:
[\x20-\x7F]{11} - para sustituir la ID de video de YouTube de 11 caracteres

Buscar cadenas específicas opcionales como "www.":
(www\.)* - para sustutuir "www."

Ver si está 1 o 0 caracteres para la s de https:
(s)* - para sustituir s o nada
.{0,1} - para sustituir s o nada

Escapar caracteres especiales:
\/\/ - para escapar "//"
\? - para escapar algo como "watch?"


Código:
//Busca offset de youtube.com y subdominios de païs con o sin https,
//con o sin www., se asegura de que sea una URL de video válida:
///
text = " http://de.youtube.com/watch?param0=langes&v=Mw0yNzdyH6Y&gl=DE";
n = text.search(/http(s)*:\/\/[\x20-\x7F]*youtube.com[\x20-\x7F]*\/watch\?[\x20-\x7F]*v\=[\x20-\x7F]{11}[\x20-\x7F]*/i);







//Busca offset de youtube.com y subdominios de país con o sin https
///
text = " http://youtube.com.sv/watch?v=sadgddddddd";
n = text.search(/http.{0,1}:\/\/youtube.com...\//i);





//Busca offset de youtube.com y subdominios de país con o sin https,
//con o sin www.
///
text = " https://www.youtube.com/watch?v=Mw0yNzdyH6Y";
n = text.search(/http.{0,1}:\/\/(www\.)*youtube.com...\/*/i);
« Última modificación: 12 Enero 2023, 15:20 pm por ~ » En línea

Donar con PayPal para que siga trabajando:
https://www.ebay.com/usr/udocproject3

Streams en vivo de programación:
PC 1 - PC 2

http://www.youtube.com/@AltComp126/streams
Páginas: 1 2 [3] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Expresiones regulares
Programación Visual Basic
chrominum 1 2,516 Último mensaje 30 Enero 2008, 23:09 pm
por LeandroA
Expresiones Regulares + Php wtf!
PHP
Shell Root 4 4,719 Último mensaje 29 Marzo 2010, 01:24 am
por Castg!
expresiones Regulares
.NET (C#, VB.NET, ASP)
Choclito 3 5,838 Último mensaje 1 Mayo 2010, 05:09 am
por raul338
Expresiones Regulares
Programación General
Psyke1 9 5,855 Último mensaje 1 Junio 2010, 02:12 am
por SeC
expresiones regulares
Dudas Generales
m@o_614 1 2,907 Último mensaje 22 Junio 2014, 18:41 pm
por NikNitro!
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines