Jump to content

RegEx model numbers


blommer

Recommended Posts

I'm trying to make a simple list of mac model numbers, but it's currently formated like this:

<span id="contentcenter_specs_externalnav_wrapper"> 
	  	  <span id="contentcenter_specs_externalnav_noflip_1"><font color="white">1</font></span> 
		  <span id="contentcenter_specs_externalnav_noflip_2"><a href="http://www.everymac.com/systems/apple/emac/stats/emac_1.0.html">eMac</a> <a href="http://www.everymac.com/systems/apple/emac/stats/emac_1.0.html">G4/1.0 (ATI)</a></span> 
		  <span id="contentcenter_specs_externalnav_noflip_3">A1001</span> 
</span> 
      
<span id="contentcenter_specs_externalnav_wrapper"> 
	  	  <span id="contentcenter_specs_externalnav_noflip_1"><font color="white">1</font></span> 
		  <span id="contentcenter_specs_externalnav_noflip_2"><a href="http://www.everymac.com/systems/apple/emac/stats/emac_1.25.html">eMac</a> <a href="http://www.everymac.com/systems/apple/emac/stats/emac_1.25.html">G4/1.25 (USB 2.0)</a></span> 
		  <span id="contentcenter_specs_externalnav_noflip_3">A1002</span> 
</span> 
      
<span id="contentcenter_specs_externalnav_wrapper"> 
	  	  <span id="contentcenter_specs_externalnav_noflip_1"><font color="white">1</font></span> 
		  <span id="contentcenter_specs_externalnav_noflip_2"><a href="http://www.everymac.com/systems/apple/emac/stats/emac_1.42.html">eMac</a> <a href="http://www.everymac.com/systems/apple/emac/stats/emac_1.42.html">G4/1.42 (2005)</a></span> 
		  <span id="contentcenter_specs_externalnav_noflip_3">A1003</span> 

 

I'd like it to look like this:

 

A1001

A1002

A1003

 

 

Can anybody give me some advice? Thanks.

Link to comment
https://forums.phpfreaks.com/topic/204672-regex-model-numbers/
Share on other sites

If you know it will always be between the <span></span> tag you can use "!<span .*?>(.*?)</span>!",$string, if you know it will be between only between span tag that has specific content you can add text to it like in the example you showed, you could match noflip_3: "!<span .*?noflip_3\">(.*?)</span>!",$string

Link to comment
https://forums.phpfreaks.com/topic/204672-regex-model-numbers/#findComment-1071599
Share on other sites

libxml_use_internal_errors(true);

$doc = new DomDocument();
if ($doc->loadHtmlFile('..url..')) {
  $xpath = new DomXPath($doc);
  foreach ($xpath->query('//span[@id="contentcenter_specs_externalnav_noflip_3"]') as $node) {
    echo $node->nodeValue, "<br>\n";
  }
}

Link to comment
https://forums.phpfreaks.com/topic/204672-regex-model-numbers/#findComment-1071604
Share on other sites

<?PHP
$input = '<span id="contentcenter_specs_externalnav_wrapper">
             <span id="contentcenter_specs_externalnav_noflip_1"><font color="white">1</font></span>
           <span id="contentcenter_specs_externalnav_noflip_2"><a href="http://www.everymac.com/systems/apple/emac/stats/emac_1.0.html">eMac</a> <a href="http://www.everymac.com/systems/apple/emac/stats/emac_1.0.html">G4/1.0 (ATI)</a></span>
           <span id="contentcenter_specs_externalnav_noflip_3">A1001</span>
   </span>
        
   <span id="contentcenter_specs_externalnav_wrapper">
             <span id="contentcenter_specs_externalnav_noflip_1"><font color="white">1</font></span>
           <span id="contentcenter_specs_externalnav_noflip_2"><a href="http://www.everymac.com/systems/apple/emac/stats/emac_1.25.html">eMac</a> <a href="http://www.everymac.com/systems/apple/emac/stats/emac_1.25.html">G4/1.25 (USB 2.0)</a></span>
           <span id="contentcenter_specs_externalnav_noflip_3">A1002</span>
   </span>
        
   <span id="contentcenter_specs_externalnav_wrapper">
             <span id="contentcenter_specs_externalnav_noflip_1"><font color="white">1</font></span>
           <span id="contentcenter_specs_externalnav_noflip_2"><a href="http://www.everymac.com/systems/apple/emac/stats/emac_1.42.html">eMac</a> <a href="http://www.everymac.com/systems/apple/emac/stats/emac_1.42.html">G4/1.42 (2005)</a></span>
           <span id="contentcenter_specs_externalnav_noflip_3">A1003</span> ';

$pattern = '%<span id="contentcenter_specs_externalnav_noflip_3">(.+)</span>%';
if(preg_match_all($pattern, $input, $matches)) {
	echo implode("\n", $matches[1]);
} else { 
	echo 'Not found!';
}
?>

Works perfectly.

Link to comment
https://forums.phpfreaks.com/topic/204672-regex-model-numbers/#findComment-1073937
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.