Trabajar con Regex

  • Bogey
  • Bogey
  • Genius
  • Avatar de Usuario
  • Registrado: Jul 14, 2005
  • Mensajes: 8211
  • Loc: USA
  • Status: Offline

Nota Abril 29th, 2011, 4:44 pm

No he estado trabajando con Regex durante mucho tiempo así que me olvidé de la información muy poco que sabía al respecto. Estoy tratando de aprender Regex (todavía) y no puede obtener el cuelgue de ella.



¿Alguien sabe de algun software bueno como RegexBuddy (Pero gratis) que podría utilizar para la práctica Regex?

También estoy tratando de conseguir una expresión regular que sólo acepta A-Za-z0-1 .. para la expresión regular para que se...
PHP Código: [ Select ]
preg_match('/A-Za-z0-9/', $input);
"Bring forth therefore fruits meet for repentance:" Matthew 3:8
  • Anonymous
  • Bot
  • No Avatar
  • Registrado: 25 Feb 2008
  • Mensajes: ?
  • Loc: Ozzuland
  • Status: Online

Nota Abril 29th, 2011, 4:44 pm

  • joebert
  • Sledgehammer
  • Genius
  • No Avatar
  • Registrado: Feb 10, 2004
  • Mensajes: 13455
  • Loc: Florida
  • Status: Offline

Nota Abril 29th, 2011, 5:24 pm

La forma más eficiente a la práctica con las expresiones regulares en PHP es guardar una página web, o diez en el mismo directorio que el script PHP está sentado, la carga de uno o varios de ellos con file_get_contents, y tratar de identificar las distintas secciones de las páginas web.

Aparte de eso, el software que usted menciona es la única cosa que he visto de ese tipo, probablemente en 5 años.
Strong with this one, the sudo is.
  • spork
  • Brewmaster
  • Silver Member
  • Avatar de Usuario
  • Registrado: Sep 22, 2003
  • Mensajes: 6128
  • Loc: Seattle, WA
  • Status: Offline

Nota Abril 29th, 2011, 6:50 pm

PHP Código: [ Select ]
preg_match('/A-Za-z0-9/', $input);


Sólo coincide con la cadena exacta "A-Za-z0-9". Usted probablemente querrá una clase de caracteres, lo que coincide con todo lo dentro de la clase, incluyendo los rangos :

PHP Código: [ Select ]
preg_match('/[A-Za-z0-9]/', $input);


(Nota de los corchetes). Sin embargo, una clase representa sólo un partido de carácter individual. Para hacer coincidir más de un carácter en esta clase, youd desea modificar con un * (cero o más) o un signo + (una o más):

PHP Código: [ Select ]
preg_match('/[A-Za-z0-9]+/', $input);


Sin embargo, esto es una exageración, ya que \ w es un carácter especial que coincide con cualquier palabra del carácter , Básicamente cualquier cosa alfanuméricos y guiones:

PHP Código: [ Select ]
preg_match('/\w+/', $input);


Theres muchos probadores de expresiones regulares en línea (la mayoría están escritos en JavaScript):
http://www.bing.com/search?&q=regular+expression+tester

Si yo fuera tú, Id considerar la instalación de Perl y escribir unos cuantos scripts que hacen cosas distintas que requieren expresiones regulares, es decir, la lectura y el análisis de un archivo, la modificación de cadenas, etc La documentación Perl tiene una excelente documentación de expresiones regulares desde su tan ampliamente utilizado.
The Beer Monocle. Classy.
  • Bogey
  • Bogey
  • Genius
  • Avatar de Usuario
  • Registrado: Jul 14, 2005
  • Mensajes: 8211
  • Loc: USA
  • Status: Offline

Nota Abril 29th, 2011, 8:36 pm

Bien, esto me lleva a otra pregunta...¿cómo puedo instalar perl?
"Bring forth therefore fruits meet for repentance:" Matthew 3:8
  • Bogey
  • Bogey
  • Genius
  • Avatar de Usuario
  • Registrado: Jul 14, 2005
  • Mensajes: 8211
  • Loc: USA
  • Status: Offline

Nota Abril 29th, 2011, 11:06 pm

Bogey escribió:
Bien, esto me lleva a otra pregunta...¿cómo puedo instalar perl?

Ok, eso era una pregunta estúpida. ¿Cuál debo usar? Fresa o ActiveState Perl?

http://www.perl.org/get.html


Yo construí mi propia utilidad para probar Regex
PHP Código: [ Select ]
<form method="POST" action="index.php">
<p>REGEX: <input type="text" name="regex" style="width: 100%;" value="<?=isset($_POST['regex']) ? $_POST['regex'] : null;?>" /><br />
CONTENT: <textarea style="width: 100%; height: 300px;" name="content"><?=isset($_POST['content']) ? $_POST['content'] : null;?></textarea><br />
<input type="submit" name="submit" value="Submit" /> <input type="reset" value="Reset" /></p>
</form>
<hr />
<pre><?php
if(isset($_POST['submit']))
{
    $regex = $_POST['regex'];
    $content = $_POST['content'];
   
    echo "\n\nNumber of Results found: ";
    print_r(preg_match_all($regex, $content, $match));
    echo "\n\nActual Results\n\n";
    print_r($match);
}
?></pre>
  1. <form method="POST" action="index.php">
  2. <p>REGEX: <input type="text" name="regex" style="width: 100%;" value="<?=isset($_POST['regex']) ? $_POST['regex'] : null;?>" /><br />
  3. CONTENT: <textarea style="width: 100%; height: 300px;" name="content"><?=isset($_POST['content']) ? $_POST['content'] : null;?></textarea><br />
  4. <input type="submit" name="submit" value="Submit" /> <input type="reset" value="Reset" /></p>
  5. </form>
  6. <hr />
  7. <pre><?php
  8. if(isset($_POST['submit']))
  9. {
  10.     $regex = $_POST['regex'];
  11.     $content = $_POST['content'];
  12.    
  13.     echo "\n\nNumber of Results found: ";
  14.     print_r(preg_match_all($regex, $content, $match));
  15.     echo "\n\nActual Results\n\n";
  16.     print_r($match);
  17. }
  18. ?></pre>
Creo que funciona...
"Bring forth therefore fruits meet for repentance:" Matthew 3:8
  • spork
  • Brewmaster
  • Silver Member
  • Avatar de Usuario
  • Registrado: Sep 22, 2003
  • Mensajes: 6128
  • Loc: Seattle, WA
  • Status: Offline

Nota Abril 30th, 2011, 12:47 pm

Yo uso ActiveState.
The Beer Monocle. Classy.
  • SpooF
  • ٩๏̯͡๏۶
  • Bronze Member
  • Avatar de Usuario
  • Registrado: May 22, 2004
  • Mensajes: 3415
  • Loc: Richland, WA
  • Status: Offline

Nota Abril 30th, 2011, 1:12 pm

Yo uso Rubular: http://www.rubular.com/
#define NULL (::rand() % 2)
  • Bogey
  • Bogey
  • Genius
  • Avatar de Usuario
  • Registrado: Jul 14, 2005
  • Mensajes: 8211
  • Loc: USA
  • Status: Offline

Nota Abril 30th, 2011, 9:24 pm

Gracias Joebert...He instalado ActivePerl...ahora tengo que encontrar la manera de usarlo :lol:

SpooF escribió:
Yo uso Rubular: http://www.rubular.com/

¡Impresionante!! Gracias
"Bring forth therefore fruits meet for repentance:" Matthew 3:8
  • spork
  • Brewmaster
  • Silver Member
  • Avatar de Usuario
  • Registrado: Sep 22, 2003
  • Mensajes: 6128
  • Loc: Seattle, WA
  • Status: Offline

Nota Mayo 1st, 2011, 11:55 pm

Perl y PHP tienen una sintaxis muy similar. Usted probablemente no tendrá demasiado difícil de un tiempo de recogerla.
The Beer Monocle. Classy.
  • Bogey
  • Bogey
  • Genius
  • Avatar de Usuario
  • Registrado: Jul 14, 2005
  • Mensajes: 8211
  • Loc: USA
  • Status: Offline

Nota Mayo 2nd, 2011, 12:17 am

spork escribió:
Perl y PHP tienen una sintaxis muy similar. Usted probablemente no tendrá demasiado difícil de un tiempo de recogerla.

No, quiero decir que ahora puedo empezar a utilizar Perl en una instalación de WAMP o hay algo más a él después de instalar ActivePerl?

Lo que he hecho es sólo corrió ActivePerl.msi...que no pidió ninguna entrada durante la instalación (además del acuerdo de licencia, lugar para instalar a...)

¿Qué debo hacer ahora? Sólo empezar a programar en Perl?
"Bring forth therefore fruits meet for repentance:" Matthew 3:8
  • SpooF
  • ٩๏̯͡๏۶
  • Bronze Member
  • Avatar de Usuario
  • Registrado: May 22, 2004
  • Mensajes: 3415
  • Loc: Richland, WA
  • Status: Offline

Nota Mayo 2nd, 2011, 9:10 am

Usted probablemente tendrá que configurar Apache si desea escribir páginas web. De lo contrario, sólo puede utilizar la línea de comandos.
#define NULL (::rand() % 2)
  • Bogey
  • Bogey
  • Genius
  • Avatar de Usuario
  • Registrado: Jul 14, 2005
  • Mensajes: 8211
  • Loc: USA
  • Status: Offline

Nota Mayo 2nd, 2011, 10:48 am

SpooF escribió:
Usted probablemente tendrá que configurar Apache si desea escribir páginas web. De lo contrario, sólo puede utilizar la línea de comandos.

¿Cómo puedo configurar Apache y lo que puedo configurarlo para que?
"Bring forth therefore fruits meet for repentance:" Matthew 3:8
  • spork
  • Brewmaster
  • Silver Member
  • Avatar de Usuario
  • Registrado: Sep 22, 2003
  • Mensajes: 6128
  • Loc: Seattle, WA
  • Status: Offline

Nota Mayo 2nd, 2011, 10:52 am

¿Por qué no escribir scripts de línea de comandos? No veo el momento de pasar por la molestia de configurar Apache sólo para jugar con las expresiones regulares. Las cosas van a ser mucho más sencillo con el llano guiones de edad.
The Beer Monocle. Classy.
  • Bogey
  • Bogey
  • Genius
  • Avatar de Usuario
  • Registrado: Jul 14, 2005
  • Mensajes: 8211
  • Loc: USA
  • Status: Offline

Nota Mayo 2nd, 2011, 12:18 pm

Yo podría seguir adelante y aprender Perl, junto con las expresiones regulares.
"Bring forth therefore fruits meet for repentance:" Matthew 3:8
  • Bogey
  • Bogey
  • Genius
  • Avatar de Usuario
  • Registrado: Jul 14, 2005
  • Mensajes: 8211
  • Loc: USA
  • Status: Offline

Nota Mayo 4th, 2011, 9:59 pm

Entonces, ¿cómo puedo configurar Apache? Sólo quiero que todo sea limpio...no sólo no sé cómo usar secuencias de comandos de línea de comandos, pero yo podría aprender Perl, así como Regex.
"Bring forth therefore fruits meet for repentance:" Matthew 3:8
  • Anonymous
  • Bot
  • No Avatar
  • Registrado: 25 Feb 2008
  • Mensajes: ?
  • Loc: Ozzuland
  • Status: Online

Nota Mayo 4th, 2011, 9:59 pm

Publicar Información

  • Total de mensajes en este tema: 18 mensajes
  • Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 159 invitados
  • No puede abrir nuevos temas en este Foro
  • No puede responder a temas en este Foro
  • No puede editar sus mensajes en este Foro
  • No puede borrar sus mensajes en este Foro
  • No puede enviar adjuntos en este Foro
 
 

© 2011 Unmelted, LLC. Ozzu® es una marca registrada de Unmelted, LLC