Re: [PHP] Regex help please

2009-03-27 Thread Shawn McKenzie
haliphax wrote:
> On Fri, Mar 27, 2009 at 9:40 AM, Shawn McKenzie  wrote:
>> I'm normally OK with regex, especially if I fiddle with it long enough,
>> however I have fiddled with this one so long that I'm either totally
>> missing it or it's something simple.  Does it have anything to do with
>> the backref, or the fact that the value of the backref has a $?  I have:
>>
>> $out = '
>> {$sites}
>> 
>>
>>{Site.id}
>>
>> 
>> {/$sites}';
>>
>> And I want to capture the first {$tag}, everything in between and the
>> last {$/tag}.  I have tried several things and here is my current regex
>> that looks like it should work, but doesn't:
>>
>> preg_match_all('|{\$([^}]+)}(.+)({/\1})|Us', $out, $matches);
> 
> Shawn,
> 
> First thing I see--your first capture group doesn't include the $, and
> so your final capture group will always fail given your current $out
> (because it's looking for {/sites} instead of {/$sites}). Also, your
> {} are outside of your capture group in \1, but inside in \3. Here's
> what I came up with:
> 
> $out = '
> {$sites}
> 
>
>{Site.id}
>
> 
> {/$sites}';
> $matches = array();
> preg_match_all('#{(\$[^}]+)}(.*?){(/\1)}#s', $out, $matches);
> print_r($matches);
> 
> Produces this:
> 
> Array
> (
> [0] => Array
> (
> [0] => {$sites}
> 
>
>{Site.id}
>
> 
> {/$sites}
> )
> 
> [1] => Array
> (
> [0] => $sites
> )
> 
> [2] => Array
> (
> [0] =>
> 
>
>{Site.id}
>
> 
> 
> )
> 
> [3] => Array
> (
> [0] => /$sites
> )
> 
> )
> 
> Keep in mind, I had to view the page source in order to see the HTML
> tags, but it showed me everything I expected to see.
> 
> HTH,
> 

Yes, thank you.  I was fiddling before I got your post and I came up
with roughly the same.

preg_match_all('|{(\$[^}]+)}(.+){(/\1)}|Us', $out, $matches);

-- 
Thanks!
-Shawn
http://www.spidean.com

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



Re: [PHP] Regex help please

2009-03-27 Thread haliphax
On Fri, Mar 27, 2009 at 9:40 AM, Shawn McKenzie  wrote:
> I'm normally OK with regex, especially if I fiddle with it long enough,
> however I have fiddled with this one so long that I'm either totally
> missing it or it's something simple.  Does it have anything to do with
> the backref, or the fact that the value of the backref has a $?  I have:
>
> $out = '
> {$sites}
> 
>        
>        {Site.id}
>        
> 
> {/$sites}';
>
> And I want to capture the first {$tag}, everything in between and the
> last {$/tag}.  I have tried several things and here is my current regex
> that looks like it should work, but doesn't:
>
> preg_match_all('|{\$([^}]+)}(.+)({/\1})|Us', $out, $matches);

Shawn,

First thing I see--your first capture group doesn't include the $, and
so your final capture group will always fail given your current $out
(because it's looking for {/sites} instead of {/$sites}). Also, your
{} are outside of your capture group in \1, but inside in \3. Here's
what I came up with:

$out = '
{$sites}

   
   {Site.id}
   

{/$sites}';
$matches = array();
preg_match_all('#{(\$[^}]+)}(.*?){(/\1)}#s', $out, $matches);
print_r($matches);

Produces this:

Array
(
[0] => Array
(
[0] => {$sites}

   
   {Site.id}
   

{/$sites}
)

[1] => Array
(
[0] => $sites
)

[2] => Array
(
[0] =>

   
   {Site.id}
   


)

[3] => Array
(
[0] => /$sites
)

)

Keep in mind, I had to view the page source in order to see the HTML
tags, but it showed me everything I expected to see.

HTH,

-- 
// Todd

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



Re: [PHP] REGEX Help Please

2005-09-19 Thread Stephen Leaf
On Monday 19 September 2005 09:03 am, Shaun wrote:
> Hi,
>
> I am trying to implement a regular expression so that I have a number
> between 0.00 and 1.00. the following works except I can go up to 1.99
>
> $regexp = "/^[0-1]{1}.[0-9]{2}/";
>
> Can anyone help here please?
>
> Thanks

$regexp = "/^(0\.[0-9]{2}|1\.00)/";

that should work :)

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



Re: [PHP] REGEX Help Please

2005-09-19 Thread Robert Cummings
On Mon, 2005-09-19 at 10:11, John Nichel wrote:
> Shaun wrote:
> > Hi,
> > 
> > I am trying to implement a regular expression so that I have a number 
> > between 0.00 and 1.00. the following works except I can go up to 1.99
> > 
> > $regexp = "/^[0-1]{1}.[0-9]{2}/";
> > 
> > Can anyone help here please?
> > 
> > Thanks 
> > 
> 
> May have to go outside just a regex...
> 
> if ( preg_match ( "/^\d{1}\.\d{2}$/", $number ) && $number >= 0 && 
> $number <= 1 )


$regexp = '/^((1\.00)|(0\.\d\d))$/';

Cheers,
Rob.
-- 
..
| InterJinn Application Framework - http://www.interjinn.com |
::
| An application and templating framework for PHP. Boasting  |
| a powerful, scalable system for accessing system services  |
| such as forms, properties, sessions, and caches. InterJinn |
| also provides an extremely flexible architecture for   |
| creating re-usable components quickly and easily.  |
`'

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



Re: [PHP] REGEX Help Please

2005-09-19 Thread John Nichel

Shaun wrote:

Hi,

I am trying to implement a regular expression so that I have a number 
between 0.00 and 1.00. the following works except I can go up to 1.99


$regexp = "/^[0-1]{1}.[0-9]{2}/";

Can anyone help here please?

Thanks 



May have to go outside just a regex...

if ( preg_match ( "/^\d{1}\.\d{2}$/", $number ) && $number >= 0 && 
$number <= 1 )


--
John C. Nichel
ÜberGeek
KegWorks.com
716.856.9675
[EMAIL PROTECTED]

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



Re: [PHP] Regex help - PLease

2004-03-17 Thread Michal Migurski
>Sorry I to should have added this this is what im going with so far
>
>preg_match(/\d100.*/);

This will match a digit, followed by '100', followed by anything.
Go with Rob's suggestion.

-
michal migurski- contact info and pgp key:
sf/cahttp://mike.teczno.com/contact.html

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



Re: [PHP] Regex help - PLease

2004-03-16 Thread Pablo
On 03/16/2004 6:57 AM, Rob Ellis <[EMAIL PROTECTED]> wrote:

> On Tue, Mar 16, 2004 at 02:39:27PM +0200, Brent Clark wrote:
>> Hi there
>> 
>> im in desperate need of help for a reg expression to ONLY allow 8 NUMBERS to
>> start with 100 and may not have any other kind of
>> letters or  characters. Only numbers
>> 
>> for example 
>> 10064893
>> 
> 
> if (preg_match('/^100\d{5}/', $test))
> print "ok\n";

Unless you want to allow something like '10064893A' to match, use:

preg_match('/^100\d{5}$/', $test)

Pablo

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



Re: [PHP] Regex help - PLease

2004-03-16 Thread Rob Ellis
On Tue, Mar 16, 2004 at 02:39:27PM +0200, Brent Clark wrote:
> Hi there
> 
> im in desperate need of help for a reg expression to ONLY allow 8 NUMBERS to start 
> with 100 and may not have any other kind of 
> letters or  characters. Only numbers
> 
> for example 
> 10064893
> 

if (preg_match('/^100\d{5}/', $test))
print "ok\n";

- rob

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



Re: [PHP] Regex help - PLease

2004-03-16 Thread Richard Davey
Hello Brent,

Tuesday, March 16, 2004, 12:39:27 PM, you wrote:

BC> im in desperate need of help for a reg expression to ONLY allow 8
BC> NUMBERS to start with 100 and may not have any other kind of
BC> letters or characters. Only numbers

BC> for example 
BC> 10064893

It's not a reg exp, but it will work:

if (is_numeric($val) == FALSE || strlen($val) <> 8 || substr($val, 0,
3) !== "100")
{
// $val doesn't match
}

Conversely:

if (is_numeric($val) == TRUE && strlen($val) == 8 && substr($val, 0,
3) == "100")
{
// $val does match
}

(Code not tested, but you get the idea I hope)

-- 
Best regards,
 Richard Davey
 http://www.phpcommunity.org/wiki/296.html

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