|
| Brug af Preg match til at pille variable u~ Fra : Tommy Ipsen |
Dato : 01-05-04 23:43 |
|
Hej Alle
Jeg har en længere streng, som jeg skal pille nogle værdier ud af:
....blablabla...</b></td><td class="minklasse">Spændende værdi nummer
1</td><td class="minklasse"></td></tr><tr><td width="20"
class="minklasse"><b>Til:</b></td><td class="minklasse">Spændende værdi
nummer 2</td>...blablabla...
Jeg vil gerne have pillet de to spændende værdier ud og jeg kan regne
ud, at det må være muligt ved hjælp af preg_match(). Men hvordan det
skal gøres, kan jeg ikke lige gennemskue, da jeg ikke er den skarpeste
kniv i skuffen på dette område!
Jeg håber der er en eller anden venlig sjæl der kan fortælle, hvordan
det kan gøres!
NB: Det må antages, at ovenstående "mønster" er unikt nok til at det kun
optræder ét sted i strengen!
Mvh Tommy
| |
Thomas Lindgaard (02-05-2004)
| Kommentar Fra : Thomas Lindgaard |
Dato : 02-05-04 08:12 |
|
On Sun, 02 May 2004 00:43:09 +0200, Tommy Ipsen wrote:
> ...blablabla...</b></td><td class="minklasse">Spændende værdi nummer
> 1</td><td class="minklasse"></td></tr><tr><td width="20"
> class="minklasse"><b>Til:</b></td><td class="minklasse">Spændende værdi
> nummer 2</td>...blablabla...
>
> Jeg vil gerne have pillet de to spændende værdier ud og jeg kan regne
> ud, at det må være muligt ved hjælp af preg_match().
Det her er utestet:
<?php
$streng = [det dér ovenfor];
preg_match_all('_<td class="width">(.*)</td>_s', $streng, $matches);
print_r($matches);
?>
Mvh.
/Thomas
| |
Tommy Ipsen (02-05-2004)
| Kommentar Fra : Tommy Ipsen |
Dato : 02-05-04 10:18 |
|
Thomas Lindgaard wrote:
> <?php
> $streng = [det dér ovenfor];
> preg_match_all('_<td class="width">(.*)</td>_s', $streng, $matches);
> print_r($matches);
> ?>
Jeg har arbejdet lidt med det og har lige et spørgsmål til den _
(underscore) du starter og slutter med - normalt bruger man vel /
(slash), men det vil så give problemer, da dette tegn også bruges i
forbindelse med afslutning af tags i html. Er det derfor/sådan du
angiver at _ skal benyttes som "delimiter" i stedet for / ?
Mvh Tommy
| |
Thomas Lindgaard (02-05-2004)
| Kommentar Fra : Thomas Lindgaard |
Dato : 02-05-04 10:37 |
|
On Sun, 02 May 2004 11:17:45 +0200, Tommy Ipsen wrote:
> Jeg har arbejdet lidt med det og har lige et spørgsmål til den _
> (underscore) du starter og slutter med - normalt bruger man vel /
> (slash), men det vil så give problemer, da dette tegn også bruges i
> forbindelse med afslutning af tags i html. Er det derfor/sådan du
> angiver at _ skal benyttes som "delimiter" i stedet for / ?
Der ligger såmænd ikke de store hemmeligheder skjult i min brug af
_ frem for /. Man kan vist bruge sit yndlingstegn som delimiter så længe
man husker at escape det inde i det regulære udtryk.
Tidligere har jeg faktisk sværget til / som delimiter, men det giver ofte
anledning til en del tegn der skal escapes, så jeg er ved at gå over til
_ for at undgå dette.
Hvis man bruger 'verdens mest sjældent brugte tegn' (tm) så kan man nok
undgå at escape ret meget :)
Mvh.
/Thomas
| |
Christian Joergensen (02-05-2004)
| Kommentar Fra : Christian Joergensen |
Dato : 02-05-04 22:00 |
|
On Sun, 02 May 2004 11:36:58 +0200, Thomas Lindgaard wrote:
> Der ligger såmænd ikke de store hemmeligheder skjult i min brug af
> _ frem for /. Man kan vist bruge sit yndlingstegn som delimiter så længe
> man husker at escape det inde i det regulære udtryk.
Jeg holder stadig på # :)
--
Christian Jørgensen
http://www.razor.dk
| |
Jacob Atzen (02-05-2004)
| Kommentar Fra : Jacob Atzen |
Dato : 02-05-04 20:08 |
|
Tommy Ipsen <tipsen@imada.sdu.dk> writes:
> Jeg har en længere streng, som jeg skal pille nogle værdier ud af:
>
> ...blablabla...</b></td><td class="minklasse">Spændende værdi nummer
> 1</td><td class="minklasse"></td></tr><tr><td width="20"
> class="minklasse"><b>Til:</b></td><td class="minklasse">Spændende
> værdi nummer 2</td>...blablabla...
>
> Jeg vil gerne have pillet de to spændende værdier ud og jeg kan regne
> ud, at det må være muligt ved hjælp af preg_match(). Men hvordan det
> skal gøres, kan jeg ikke lige gennemskue, da jeg ikke er den skarpeste
> kniv i skuffen på dette område!
>
> Jeg håber der er en eller anden venlig sjæl der kan fortælle, hvordan
> det kan gøres!
Det er svært at gætte helt præcist, hvilket mønster du ønsker at
extracte. Men her er da lidt kode der gør det i det viste tilfælde:
<?php
$string = "...blablabla...</b></td><td ".
"class=\"minklasse\">Spændende værdi nummer 1</td><td ".
"class=\"minklasse\"></td></tr><tr><td width=\"20\" ".
"class=\"minklasse\"><b>Til:</b></td><td ".
"class=\"minklasse\">Spændende værdi nummer 2</td>...blablabla...";
$pattern = "|minklasse\">([\s\w]*)</td.*minklasse\">([\s\w]+)</td|U";
preg_match($pattern, $string, $matches);
var_dump($matches);
?>
--
Med venlig hilsen
- Jacob Atzen
| |
|
|