mifflin Posted July 15, 2009 Share Posted July 15, 2009 can someone explain a few things for me? and yes I googled it, but I just had a few questions. In preg_match, "(.+?)" could be basically anything, "/^" means no slash, but what does "\|\|\|/" mean? slash or slash or slash or forward slash? I'm not getting what this does.... look. [pre] preg_match("/^(.+?)\|\|\|/", $obj->images, $matches); if (!isset($matches[1])) { preg_match("/^(.+?)\|(.+?)\|\|/", $obj->images, $matches); $img = $matches[1]; $img_align = $matches[2]; [/pre] and, I know this is a dumb question, but what does the " $obj->images, $matches);" do after the preg_match Thanks in advance. Link to comment https://forums.phpfreaks.com/topic/166111-preg_match-help/ Share on other sites More sharing options...
nrg_alpha Posted July 15, 2009 Share Posted July 15, 2009 No, you misunderstand.. (.+?) - the dot is a wildcard that matches a single character (other than a newline by default). the + is a one or more times quantifier, and the ? makes the + lazy (it will not be greedy) The parenthesis that encases this all is a capture, which means whatever it matches in .+? will be stored into the value $1. /^ The / is actually the beginning delimiter (you'll notice that the pattern starts and ends with /.. so after the opening delimiter, the ^ means from the start of the string. \|\|\| is a way of saying, match 3 consecutive pipes... which could be re-wirtten as \|{3}.. the backslash escapes the pipe character so that the pattern doesn't see it as OR, as the pipe is used for such purposes, as in (ab|bc) which would mean, capture the letters ab OR bc. As far as $obj->images is concerned, this is an object containing a property called images (google OOP - Object Oriented Programming). The $matches means what ever the pattern matches, it will be stored into the array called, well, $matches. The complete pattern would be stored as $matches[0]. So if there is parenthesis involved, the first set will be stored into $matches[1], if there is a second set of parenthesis, this will be stored into $matches[2], etc.. (which runs in parellel with $1, $2, etc.. (hope I'm clear in my explanations here). You can have a look at these regex resources to better understand what's going on: http://www.regular-expressions.info/ http://weblogtoolscollection.com/regex/regex.php http://www.amazon.com/Mastering-Regular-Expressions-Jeffrey-Friedl/dp/0596528124/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1239475391&sr=8-1 pcre http://www.phpfreaks.com/forums/index.php/topic,127902.0.html http://www.phpfreaks.com/tutorial/regular-expressions-part1---basic-syntax This will be more than enough to get you started. Link to comment https://forums.phpfreaks.com/topic/166111-preg_match-help/#findComment-876063 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.