Re: Re: Space in regex

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 17/11/06, Paul Novitski <paul@xxxxxxxxxxxxxxxxxxx> wrote:> At 11/16/2006 08:46 PM, Myron Turner wrote:> >The underscore plus alphanumeric are included in \w, so to get a> >regex such as you want:> >                 [\w\s\.\-&\']+> >You should escape the dot because the unescaped dot stands for any> >single character, which is why .* stands for any and all characters.>>> Not actually.  Inside a character class, a dot is just a period.  You> may escape it (or any other character) but you don't need to.  To> quote the manual:> ______________________>> Meta-characters> ...> In a character class the only meta-characters are:>> \>      general escape character>> ^>      negate the class, but only if the first character>> ->      indicates character range>> ]>      terminates the character class>> ...>> Square brackets> ...> A closing square bracket on its own is not special. If a closing> square bracket is required as a member of the class, it should be the> first data character in the class (after an initial circumflex, if> present) or escaped with a backslash.> ...> All non-alphanumeric characters other than \, -, ^ (at the start) and> the terminating ] are non-special in character classes, but it does> no harm if they are escaped.> ______________________>> http://ca.php.net/manual/en/reference.pcre.pattern.syntax.php>
In any case, none of those solutions work. Try code:
<?php
$makeLinkPlaceHolder=0;
function findLinks ($matches) {    global $linkTextArrayPlaceHolder;    ++$linkTextArrayPlaceHolder;
   // Make two peices and fill them with what they should be    $matches[0]=str_replace("[", "", $matches[0] );    $matches[0]=str_replace("]", "", $matches[0] );    $parts=explode("|", $matches[0]);
   print "<br /><br />$parts[0] | $parts[1]";
   $returnString="[".$linkTextArrayPlaceHolder."]";    return $returnString;}
$text="This is some text.This tag has no spaces and no pipes [TestTag]This tag has no spaces and a pipe [TestTag|AfterPipe]This tag has a space and no pipes [Test Tag]This tag has a space and a pipe [Test Tag|AfterPipe]";
// Clean up the text$text=str_replace("\r\n", "\n", $text);$text=str_replace("\r", "\n", $text);$text=str_replace("\n", "<br />", $text);
print $text;
// THIS IS THE PROBLEMATIC CODE$text=preg_replace_callback('/\[([A-Za-z0-9\¦\'.-]+)\]/i' ,"findLinks", $text);
print "<br /><br />".$text;?>
Dotan Cohen
http://lyricslist.com/http://what-is-what.com/

[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux