On Tue, 24 Aug 2004 23:53:53 -0700, Daniel Lahey <[EMAIL PROTECTED]> wrote: > I'm trying to figure out how to formulate a regular expression that > will get me everything following a pound sign (#) up to the first space > or { character. (I'm trying to parse the ids out of a style sheet.) > Can anyone point me in the right direction? I've been searching on the > web for hours and reading everything I can find on regular expressions, > but I just can't wrap my brain around it. Thanks. >
Try this snippet ---- <pre> <?php $css = fopen("http://www.csszengarden.com//001/001.css", "r"); $data = fread($css, 30000); preg_match_all("/#.+({ )/", $data, $out); print_r($out); ?> </pre> It gets the default css from the zengarden site. (30k is a large buffer, but this is not a howto on buffered reads) The regular expression /#.+({ )/ means, piece by piece # the # character . dot is a special character in regular expressions. it can match any character + is also a special character, it means match 1 or more times so .+ means match any character 1 or more times ( ) are special characters, they match any single character inside them. in the case of ({ ) , it matches either a space or a left bracket So, the whole expression means: match a strings where they start with #, followed by 1 or more characters, followed by a space or a left-bracket Note that these are very simplified explanations for regular expressions. Now, try the expression /#(.+)({ )/ and instead of print_r($out), try print_r($out[1]); Now you get the classnames :) Check out the following sites for more info (they appear first when you google regular expressions). http://sitescooper.org/tao_regexps.html http://etext.lib.virginia.edu/helpsheets/regex.html Also, check out the PHP manual for the preg_* functions --- Note that the script i gave you has problems with classnames on one line, like #footer a:link, #footer a:visited But I won't spoon feed you :) ---- ramil http://ramil.sagum.net -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php