an excelent tool: The Regex Coach, its free and you can grab it from
http://weitz.de/regex-coach/
and its available for windows and linux!

luis.

<[EMAIL PROTECTED]> escribió en el mensaje
news:[EMAIL PROTECTED]
> Hello all,
>
> For a while I tried in vain to find a decent regular expression tester.
The closest I found
> was RegExpEditor, by the same people who produce PHPEdit, but I found it
to be slow
> and didn't like its constant bitching about "invalid delimiters" or some
such thing.
>
> Anyway, I ended up writing a little tester for Perl-compatible regular
expressions and
> thought I'd share it with you. Maybe it'll come in handy to people who
often need to use
> regular expressions in their projects. Just copy the code below the dotted
line (which
> has Unix line breaks) and save it to a file.
>
> Cheers,
>
> Erik
>
> --------
>
> <html>
> <head>
> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
> <title>Regular Expression Tester</title>
> <?php( isset($_POST['text']) && isset($_POST['regexp']) )
> {
> $error = false;
> if($_POST['mode'] == 'one')
> {
> if( @preg_match('/'.$_POST['regexp'].'/', $_POST['text'], $matches) ===
> false )
> {
> $error = true;
> }
> }
> else
> {
> if( @preg_match_all('/'.$_POST['regexp'].'/', $_POST['text'], $matches)
> === false )
> {
> $error = true;
> }
> }
> }
> ?>
> </head>
> <body style="font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:12px;">
> <form action="<?php print $_SERVER['PHP_SELF']; ?>" method="post"
> enctype="multipart/form-data">
> <table width="750">
> <tr>
> <td width="135"><div align="right">Regular expression:</div></td>
> <td width="591">
> <input name="regexp" type="text" size="87"
> <?php if( isset($_POST['regexp']) ) {print
'value="'.$_POST['regexp'].'"';} ?>
> />
> </td>
> </tr>
> <tr>
> <td width="135"><div align="right">Text:</div></td>
> <td width="591">
> <textarea name="text" rows="6" cols="65">
> <?php if( isset($_POST['text']) ) {print $_POST['text'];} ?>
> </textarea>
> </td>
> </tr>
> <tr>
> <td width="135"><div align="right">Mode:</div></td>
> <td width="591">
> <select name="mode">
> <option value="one"
> <?php( isset($_POST['mode']) && $_POST['mode'] == 'one' )
> {
> print 'selected';
> }
> ?>
> >First match</option>
> <option value="all"
> <?php( isset($_POST['mode']) && $_POST['mode'] == 'all' )
> {
> print 'selected';
> }
> ?>
> >All matches</option>
> </select>
> </td>
> </tr>
> <tr>
>  <td width="135">&nbsp;</td>
>  <td>    <input type="submit" value="RUN TEST"/>
> &nbsp;&nbsp;&nbsp;
> <input type="reset" value="CLEAR FORM"/></td>
> </tr>
> </table>
> </form>
> <p/>
> <div style="background-color:#000000; color:#FFFFFF;">
> <table width="750" border="10" bordercolor="#000000">
> <?php($error)
> {
> exit('<tr><td><span style="color: lime; font-weight: bold;">'.
> 'Invalid regular expression!</span></td></tr>');
> }
> ( isset($matches) && !empty($matches[0]) )
> {
> print '<tr><td colspan="2" style="font-weight:bold;">Full
match(es):</td></tr>'.
>   '<tr><td colspan="2">&nbsp;</td></tr>';
>
> if( !is_array($matches[0]) )
> {
> print '<tr>'.
>   '<td width="25" style="font-weight: bold;">1</td>'."\n".
>   '<td>'.htmlentities($matches[0]).'</td>'.
>   '<tr/>';
> }
> else
> {
> foreach($matches[0] as $key => $val)
> {
> print '<td width="25" style="font-weight: bold;">'.($key+1).
>   '</td>'."\n".'<td>'.htmlentities($val).'</td>'."\n".
>   '</tr>';
> }
> }
> }
> {
> print '<tr><td><span style="color: lime; font-weight: bold;">'.
>   'No matches found.</span></td></tr>';
> }
> ( isset($matches[1]) && !empty($matches[1]) )
> {
> print '<tr width="100%"><td colspan="2">&nbsp;</td></tr>'.
>   '<tr width="100%"><td colspan="2"><hr/></td></tr>'.
>   '<tr width="100%"><td colspan="2">&nbsp;</td></tr>'.
>   '<tr width="100%"><td colspan="2" style="font-weight:bold;">'.
>   'Sub-pattern match(es):</td></tr>'.
>   '<tr width="100%"><td colspan="2">&nbsp;</td></tr>';
> for($i = 1; $i < count($matches); $i++)
> {
> if( !is_array($matches[$i]) )
> {
> print '<tr width="100%">'.
>   '<td width="25" style="font-weight:
> bold;">'.$i.'</td>'."\n".
>   '<td>'.htmlentities($matches[$i]).'</td>'.
>   '</tr>';
> }
> else
> {
> foreach($matches[$i] as $key => $val)
> {
> print '<tr width="100%">'.
>   '<td width="25" style="font-weight:
> bold;">'.$i.'.'.($key+1).
>   '</td>'."\n".'<td>'.htmlentities($val).'</td>'."\n".
>   '</tr>';
> }
> }
> if( isset($matches[$i+1]) )
> {
> print '<tr width="100%"><td colspan="2">&nbsp;</td></tr>';
> }
> }
> }
> ?>
> </table>
> </div>
> </body>
> </html>

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to