On Thu, Jul 16, 2009 at 1:03 PM, Ken Golovin<[email protected]> wrote: > > This has worked for me: > $regex = '#(<div[^>]+id="cpanel">.*?)'. > '(<div > style="float:left;">.*<div[^>]+class="icon">.*?</div>.*?</div>)+'. // note > the question mark next to + quantifier is removed > '(.*?</div>.*?</td>)#ism'; //instead the first .*? becomes > greedy >
Yes it does, thanks Ken! so the trick is to find which part has become greedy inside? Kind Regards, Jochen Daum Chief Automation Officer Automatem Ltd Phone: 09 630 3425 Mobile: 021 567 853 Email: [email protected] Skype: jochendaum Website: www.automatem.co.nz http://twitter.com/automatem http://www.xing.com/go/invite/3425509.181107 > > > Ken > ----- Original Message ----- > From: "Jochen Daum" <[email protected]> > To: <[email protected]> > Sent: Thursday, July 16, 2009 12:53 PM > Subject: [phpug] Re: make specific regex part greedy > > > > Hi Stig, > > On Thu, Jul 16, 2009 at 12:35 PM, Stig Manning<[email protected]> wrote: >> >> Hi Jochen, >> >> Can you provide some example text that contains matches? (and the >> correct match) >> >> Might help us find a solution, >> > > Please see below (its from the Joomla control panel) > > > <div id="cpanel"> > <div style="float:left;"> > <div class="icon"> > <a href="index.php?option=com_content&task=add"> > <img > src="/administrator/templates/khepri/images/header/icon-48-article-add.png" > alt="Add New Article" /> <span>Add New Article</span></a> > </div> > </div> > <div style="float:left;"> > > <div class="icon"> > <a > href="index2.php?option=com_comprofiler&task=editPlugin&cid=501"> > <img > src="/administrator/templates/khepri/images/header/icon-48-extension.png" > alt="Global Configuration" /> > <span>Subscriptions</span></a> > </div> > </div> > <div style="float:left;"> > <div class="icon"> > > <a href="test"> > <img > src="/administrator/templates/khepri/images/header/icon-48-extension.png" > alt="Global Configuration" /> > <span>test</span></a> > </div> > </div> > <div style="float:left;"> > <div class="icon"> > <a href="index.php?option=com_content"> > > <img src="/administrator/templates/khepri/images/header/icon-48-article.png" > alt="Article Manager" /> <span>Article Manager</span></a> > </div> > </div> > <div style="float:left;"> > <div class="icon"> > <a href="index.php?option=com_frontpage"> > <img > src="/administrator/templates/khepri/images/header/icon-48-frontpage.png" > alt="Front Page Manager" /> <span>Front Page Manager</span></a> > > </div> > </div> > <div style="float:left;"> > <div class="icon"> > <a href="index.php?option=com_sections&scope=content"> > <img src="/administrator/templates/khepri/images/header/icon-48-section.png" > alt="Section Manager" /> <span>Section Manager</span></a> > </div> > </div> > > <div style="float:left;"> > <div class="icon"> > <a href="index.php?option=com_categories&section=com_content"> > <img > src="/administrator/templates/khepri/images/header/icon-48-category.png" > alt="Category Manager" /> <span>Category Manager</span></a> > </div> > </div> > <div style="float:left;"> > <div class="icon"> > > <a href="index.php?option=com_media"> > <img src="/administrator/templates/khepri/images/header/icon-48-media.png" > alt="Media Manager" /> <span>Media Manager</span></a> > </div> > </div> > <div style="float:left;"> > <div class="icon"> > <a href="index.php?option=com_menus"> > <img src="/administrator/templates/khepri/images/header/icon-48-menumgr.png" > alt="Menu Manager" /> <span>Menu Manager</span></a> > > </div> > </div> > <div style="float:left;"> > <div class="icon"> > <a href="index.php?option=com_languages&client=0"> > <img > src="/administrator/templates/khepri/images/header/icon-48-language.png" > alt="Language Manager" /> <span>Language Manager</span></a> > </div> > </div> > > <div style="float:left;"> > <div class="icon"> > <a href="index.php?option=com_users"> > <img src="/administrator/templates/khepri/images/header/icon-48-user.png" > alt="User Manager" /> <span>User Manager</span></a> > </div> > </div> > <div style="float:left;"> > <div class="icon"> > > <a href="index.php?option=com_config"> > <img src="/administrator/templates/khepri/images/header/icon-48-config.png" > alt="Global Configuration" /> <span>Global > Configuration</span></a> > </div> > </div> > </div> > > </td> > <td width="45%" valign="top"> > > > Kind Regards, > > Jochen Daum > > Chief Automation Officer > Automatem Ltd > > Phone: 09 630 3425 > Mobile: 021 567 853 > Email: [email protected] > Skype: jochendaum > Website: www.automatem.co.nz > http://twitter.com/automatem > http://www.xing.com/go/invite/3425509.181107 > > >> Cheers, >> Stig >> >> Jochen Daum wrote, on 16/07/2009 10:01 AM: >>> The regex string is: >>> >>> $regex = '#(<div[^>]+id="cpanel">.*?)'. >>> '(<div style="float:left;">.*?<div >>> class="icon">.*?</div>.*?</div>)+'. //this needs to be greedy >>> '(.*?</div>.*?</td>)#ism' //instead the first .*? becomes greedy >>> >>> >>> >>> The 2nd line html elements repeat and I don't know how often. I'd like >>> to capture all of the repetition, currently it only captures the first >>> element. >>> >>> Any pointer of how to make the ()+ greedy? >>> >>> >> >> > >> > > > > > > > > --~--~---------~--~----~------------~-------~--~----~ NZ PHP Users Group: http://groups.google.com/group/nzphpug To post, send email to [email protected] To unsubscribe, send email to [email protected] -~----------~----~----~----~------~----~------~--~---
