|
Posted by yawnmoth on 11/18/83 11:43
yawnmoth wrote:
> Erwin Moller wrote:
> > yawnmoth wrote:
> <snip>
>
> Thanks for the suggestion - that helped!
>
> I tried modifyng it such that it'd delete all lines not begining with a
> b but am once again having some difficulty...
>
> First, here's the (new) script:
>
> <?
> $contents = file_get_contents('dummy.txt');
> echo "\r\n";
> echo preg_replace('/^(?!b).*?\n/m','',$contents);
> ?>
>
> The (?!b) should, as I understand it, match everything but b. What
> instead seems to be happening is that, when using the dummy.txt file
> that was posted earlier, all lines begining with a are deleted, but the
> lines with c are still there.
>
> Now, I realize that in this example, I could just as effectively
> replace (?!b) with [^b] but this approach fails if b is anything other
> than a single character. (eg. if I wanted to replace b with
> 192.168.1.1, I couldn't use [^...] - I'd have to use something like
> (?!b))
Sorry for posting, again. I just thought I should add that I'm trying
to do this with regular expressions, specifically, in an attempt to
better my understanding of them. Using another approach that doesn't
involve regular expressions would get the job done but would leave me
still kinda clueless as to why (?!b) doesn't work.
[Back to original message]
|