Top
Phpuniverset logo
 

INDHOLD

Forside

Job annoncer

Tips og Tricks

Konkurrence

Downloads

Dokumenter

PHP bog shop

Forum

Online udviklere


Propelcom

ARTIKLER

CSS

Diverse

E-handel / annoncer

Grafik

Html

Internet

Javascript

Linux

PHP/MySQL

Programmer

Flash

Søgemaskiner

Windows

C / C++


INFO

Information

Annoncering

Kontakt

Introduktion til Regular Expressions!

Forside Kategori PHP/MySQL Introduktion til Regular Expressions!




 

Regular Expressions er et meget nyttigt værktøj. Det er egnet til at finde og evt. erstatte sætninger el. lign. ud fra nogle regler du selv opstiller.

Her skal lige nævnes at det her kræver du kender en smule til PHP i forvejen. Princippet i regular expressions er meget enkel, men du kan hurtig lave dem umådelig komplekse.

Lad os nu sige at du vil finde alle ord i et array der starter med 'A' (ikke 'a'), vi laver en lille stump kode og lægger det i en fil kaldet ereg_test.php3 eller noget i den stil.


<?
$array=array("Abe","abe","Abc","abc11",
"HEST", "hest", "bAnan","1234");


$i=0;
$cnt=count($array);


echo "regular
expression test:";

while ($i < $cnt)
{
if (ereg("^A", $array[$i]))
{
echo "$i : $array[$i]
<BR>";
}
$i++;
}
?>




Det skulle gerne give følgende output i din browser:
0 : Abe
2 : Abc



'^' tegnet betyder begyndelsen af linjen. Hvis istedet man vil finde alle der *indeholder* 'A' skal man (ja du gættede rigtigt) fjerne '^'.

dette output skulle nu gerne vise sig:

0 :
Abe
2 : Abc
6 : bAnan



Lad os nu sige at du egentlig er lige glad med om der er upper case el. lower case (A el. a), så ændrer du bare IF linjen:

if (eregi("a",
$array[$i])) {



output bliver:

0 :
Abe
1 : abe
2 : Abc
3 : abc
6 : bAnan



Det 'i' der blev tilføjet står for case in-sensetive, hvilket kort fortalt at den ikke skelner mellem store og små bogstaver. Det var jo meget simpelt, ikke?

Lad os nu sige du vil finde alle strenge der indeholder tal... vi ændrer linjen i vores lille program:

if (ereg("[0-9]", $array[$i])) {


# Finder alle strenge med tal fra 0-9...

selvfølgelig stopper legen ikke her, ting som wildcards kan også bruges:

if
(ereg("^.*", $array[$i])) {


# Finder alle strenge.

Hvad så med erstat?

$array[$i] =
ereg_replace("a", "q", $array[$i]);



prøv eventuelt at kombinere den her med den stump kode du fik i starten. Du kan eventuelt smide den ind i if løkken:

while ($i <
$cnt) {
if (ereg("^A", $array[$i]))
{
$array[$i]=ereg_replace("[0-9]", " tal",
$array[$i]);
echo "$i :
$array[$i]";
}
$i++;
}
        



Flere eksempler:
"[ \t]+$" finder mellemrum eller tabulator i slutningen af linjen. ('\' tegnet bruges til at escape, ellers havde den fundet 't' istedet, andre eksempler er '\n' (finder en newline))

"^$" finder alle tomme linjer (du må så forhåbenligt have gættet at '$' betyder slutningen af linjen)

"^.{4}$" finder alle strenge der indeholder 4 karakterer.

"^a|^b|[0-9]$" finder alle der starter med 'a' eller 'b' eller en linje der slutter på tal. Her har vi gjort brug af Booleans.

Som du kan se kan det hurtigt blive en smule komplekst, men opgiv ikke, kender du først de grundlæggende funktioner, lærer du lynhurtigt at konstruere endnu mere komplekse sætninger. Der er masser af eksempler på nettet, så det er bare at komme igang.



Skrevet af: Martin Krøis| Dato : 2000-02-15 | Læst : 7695 gange | Print

Din kommentar og karakter til artiklen

Din karakter:

1

2

3

4

5

6

7

8

9

10

Kommentar:

Log ind for at give en karakter og kommentar.

Kommentarer og karakterer til artiklen

 

Send Artikel/anmeldelse til: phpuni@phpuniverset.dk

Tilbage til oversigt

FORUM

Nyeste forum indlæg :

PHP/Opencart import module

Opencart/php import modul hjælp

Lækkert kontor / kontorfællesskab i Helsingør

Opdatering af PHP

Vurdering af hjemmeside

Nyeste forum svar :

Lækkert kontor / kontorfællesskab i Helsingør

Android programmering

Joomla som CMS

Grafik problemer

Prissammenligningsside

 

MEDLEM

LOGIN ER IKKE MULIGT, MENS VI LAVER NYT SITE
 

NYHEDSBREV

Nyhedsbrev

Tilmeld dig vores nyhedsbrev og modtag nyheder om nye scripts og tips samt om mange andre nye tiltag på Phpuniverset.dk


 

© Copyright 2000 Propelcom Phpuniverset's politik om personlige oplysninger, artikler & Koder Phpuniverset er optimeret til Mozilla 1024 * 768 Phpuniverset version: 3.0 beta
Webhost : Ignesco.dk - android talk & help

Bund