Re: The difference between ereg and preg?

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

 



Jochem,

Thank you for responding, and for explaining more about regular expressions.

yes but you wouldn't use preg_replace() but rather preg_match() or preg_match_all()
which gives you back an array (via 3rd/4th[?] reference argument) which contains
the texts that matched (and therefore want to keep).
I looked up preg_match_all() on php.net, and, in combination with what was said before, came up with this syntax:

preg_match_all( "#^<li[^>]*>(.*)<br[^>]*>#is", $response, $wordList, PREG_PATTERN_ORDER );
var_dump($wordList);

The idea is to catch all text between <li> and <br> tags.

Unfortunately, the result I get from var_dump is:

array(2) { [0]=> array(0) { } [1]=> array(0) { } }

In other words, it made no matches.

The text being searched is an entire web page which contains the following:
(Please note the following includes utf-8 encoded Japanese text. Apologies if it comes out as ASCII gibberish)

<FONT color="red">日本語</FONT>は<FONT color="red">簡単</FONT>だよ<br>
<ul><li> 日本語 【にほんご】 (n) Japanese language; (P); EP <br>
<li> 簡単 【かんたん】 (adj-na,n) simple; (P); EP <br>
</ul><p>

So, my preg_match_all search should have found:

日本語 【にほんご】 (n) Japanese language; (P); EP
簡単 【かんたん】 (adj-na,n) simple; (P); EP

I've checked and rechecked my syntax, and I can't see why it would fail.

Have I messed up the regular expression, or the use of preg_match_all?

--
Dave M G

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[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