|
| Problemer med ereg() Fra : HellFish |
Dato : 07-11-01 13:13 |
|
Hej
Er der en der kan se hvad der er galt med føglende stump kode, jeg sys ikke
det ser forkert ud men det virker ikke, ligemeget hvad $kvm er hopper den
ind i den sidste if.
if ($kvm)
{
$lenkvm=strlen($kvm);
if (!ereg("([0-9]{$lenkvm})", $kvm))
{
//Gør nøget
exit;
}
}
----
HellFish
| |
Kim Emax - ayianapa.~ (07-11-2001)
| Kommentar Fra : Kim Emax - ayianapa.~ |
Dato : 07-11-01 14:13 |
|
"HellFish" <hellfish@sol.dk> skrev
> Er der en der kan se hvad der er galt med føglende stump kode, jeg sys
ikke
> det ser forkert ud men det virker ikke, ligemeget hvad $kvm er hopper den
> ind i den sidste if.
>
> if ($kvm)
> {
> $lenkvm=strlen($kvm);
> if (!ereg("([0-9]{$lenkvm})", $kvm))
hvad tror du "{" gør i regulære udtryk?
og hvad vil du have den matcher? pt matcher den et tal efterfulgt af
{$lenkvm}, er det det du vil?
og har du noget at bruge det matchede udtryk til bagefter? ellers fjern (),
så der er mindre, der forvirrer dig.
--
Take Care
Kim Emax
http://www.emax.dk
http://www.ayianapa.dk
http://www.artificial-dreams.dk
Køb din vin online på http://www.gmvin.dk,
Danmarks mest avancerede VinWebShop
| |
Peter Brodersen (07-11-2001)
| Kommentar Fra : Peter Brodersen |
Dato : 07-11-01 15:04 |
|
On Wed, 7 Nov 2001 14:13:02 +0100, "Kim Emax - ayianapa.dk"
<newsgroup@sletdette-ayianapa.dk> wrote:
>og hvad vil du have den matcher? pt matcher den et tal efterfulgt af
>{$lenkvm}, er det det du vil?
Normalt burde det ikke være et problem, da dette er en normal måde at
escape variabler på, fx:
<?
$person[1]['navn'] = "Peter Brodersen";
print "Jeg hedder {$person[1]['navn']}";
// outputter: Jeg hedder Peter Brodersen
?>
Her bliver variablen i {...} altså interpoleret, før noget andet sker.
Det samme er tilfældet i hans eksempel. Eller som et eksempel
herunder:
<?
$navn = "Peter Brodersen";
$regexp[1]['efternavn'] = "r[oy][a-f]+rs";
if (ereg("ter[[:space:]][Bb]{$regexp[1]['efternavn']}en",$navn)) {
print "MATCHER";
} else {
print "MATCHER IKKE";
}
?>
Her bliver match-string'en altså til
"ter[[:space:]][Bb]r[oy][a-f]+rs". Og i den string er der ikke noget
{} tilbage, som regex-engine'n bekymrer sig om.
--
- Peter Brodersen
| |
Peter Brodersen (07-11-2001)
| Kommentar Fra : Peter Brodersen |
Dato : 07-11-01 15:45 |
|
On Wed, 07 Nov 2001 15:03:37 +0100, Peter Brodersen
<professionel@nerd.dk> wrote:
>Og i den string er der ikke noget
>{} tilbage, som regex-engine'n bekymrer sig om.
.... hvilket selvfølgelig også er problemet i det oprindelige indlæg.
{} er ganske enkelt ikke tilbage i det endelige udtryk, i modsætning
til hvad, der ønskes.
--
- Peter Brodersen
| |
Andreas Kleist Svend~ (07-11-2001)
| Kommentar Fra : Andreas Kleist Svend~ |
Dato : 07-11-01 14:31 |
|
On 07 Nov 2001 12:13:03 GMT
HellFish <hellfish@sol.dk> wrote:
> Er der en der kan se hvad der er galt med føglende stump kode, jeg sys ikke
> det ser forkert ud men det virker ikke, ligemeget hvad $kvm er hopper den
> ind i den sidste if.
Det ville gøre det en hel del lettere at hjælpe hvis du fortalte hvad det er du prøver at matche.
--
mvh Andreas
"Jeg har også opgraderet til Linux"
| |
HellFish (07-11-2001)
| Kommentar Fra : HellFish |
Dato : 07-11-01 15:20 |
|
Andreas Kleist Svendsen <usenetnospam@nau.dk> wrote in
news:20011107143127.49076952.usenetnospam@nau.dk:
> Det ville gøre det en hel del lettere at hjælpe hvis du fortalte hvad
> det er du prøver at matche.
>
Meningen er at den skulle tage et tal fra en form, tallet kan være på
forskellige længde. Det der så skulle gøres er at tjekke at tallet kun
indeholder tal alt efter hvir mange cifre taller er langt.
----
HellFish
| |
Anders Johannsen (07-11-2001)
| Kommentar Fra : Anders Johannsen |
Dato : 07-11-01 15:16 |
|
> if ($kvm)
> {
> $lenkvm=strlen($kvm);
> if (!ereg("([0-9]{$lenkvm})", $kvm))
Hvis du ønsker at se, om strengen udelukkende består af tal fra 0-9 kan flg.
udtryk med fordel anvendes:
"^[0-9]+$"
/A
| |
Dennis Iversen (07-11-2001)
| Kommentar Fra : Dennis Iversen |
Dato : 07-11-01 15:15 |
|
HellFish wrote:
>
> Hej
>
> Er der en der kan se hvad der er galt med føglende stump kode, jeg sys ikke
> det ser forkert ud men det virker ikke, ligemeget hvad $kvm er hopper den
> ind i den sidste if.
>
prøv med "([0-9]{{$lenkvm}})" istedet for.
{} har særlig betydning i forhold til variabler,
hvorved {} slettes ved din metode og jeg regner med
at du vil måle længden af din variable vha netop {}.
ved $kvm=6
bliver dit udtryk =
"([0-9]6)"
iøvrigt hopper den derfor heller ikke ind i løkken
ved udtryk som 123 og 1234 og 12345 og 123456
ved min metode bliver det istedet for
"([0-9]{6})" hvilket jeg regner med, er det, du forsøger.
- dennis iversen
| |
HellFish (07-11-2001)
| Kommentar Fra : HellFish |
Dato : 07-11-01 21:13 |
|
"Dennis Iversen" <dbi@mail1.stofanet.dk> skrev i en meddelelse
news:3BE941E9.72F11CC8@mail1.stofanet.dk...
> prøv med "([0-9]{{$lenkvm}})" istedet for.
> {} har særlig betydning i forhold til variabler,
> hvorved {} slettes ved din metode og jeg regner med
> at du vil måle længden af din variable vha netop {}.
>
> ved $kvm=6
> bliver dit udtryk =
> "([0-9]6)"
>
> iøvrigt hopper den derfor heller ikke ind i løkken
> ved udtryk som 123 og 1234 og 12345 og 123456
>
> ved min metode bliver det istedet for
> "([0-9]{6})" hvilket jeg regner med, er det, du forsøger.
>
> - dennis iversen
Tusind tak, det var jo lige det jeg skulle bruge :)
----
HellFish
| |
|
|