|
| ereg_replace med NOT (!) Fra : Kasper Birch Olsen |
Dato : 28-07-03 13:14 |
|
hej
jeg sidder og roder med et lille problem. Jeg vil gerne løbe igennem en
streng og erstatte alle tegn der IKKE matcher et mønster med "#". Den
kode der erstatter alle tegn der MATCHER ser sådan her ud:
$string ereg_replace ('[a-zA-ZæøåÆØÅ]','#',$string);
men det jeg gerne vil er at erstatte alle de andre tegn med "#". Jeg her
prøvet at putte et "!" tegn ind sådan lidt rundt omkring, men jeg kan
ikke rigtigt få det til at virke. Heller ikke på php.net kan jeg rigtigt
finde noget der kan bruges.
altså: ab12@ skal blive til ab### men det bedste jeg kan klare lige nu
er ##12@
- Kasper
| |
Peter Brodersen (28-07-2003)
| Kommentar Fra : Peter Brodersen |
Dato : 28-07-03 16:04 |
|
On Mon, 28 Jul 2003 14:14:13 +0200, Kasper Birch Olsen <nospam@fb.dk>
wrote:
>$string ereg_replace ('[a-zA-ZæøåÆØÅ]','#',$string);
>
>men det jeg gerne vil er at erstatte alle de andre tegn med "#". Jeg her
>prøvet at putte et "!" tegn ind sådan lidt rundt omkring, men jeg kan
>ikke rigtigt få det til at virke.
! skal kun bruges ved logiske sammenligninger. Her er det regulære
udtryks egne koder, der skal bruges.
Løsningen er at sætte et ^ i starten af en klasse, fx:
ereg_replace ('[^a-zA-ZæøåÆØÅ]','#',$string);
--
- Peter Brodersen
Ugens sprogtip: kutyme (og ikke kotume)
| |
Kasper Birch Olsen (29-07-2003)
| Kommentar Fra : Kasper Birch Olsen |
Dato : 29-07-03 09:31 |
|
Peter Brodersen wrote:
> On Mon, 28 Jul 2003 14:14:13 +0200, Kasper Birch Olsen <nospam@fb.dk>
> wrote:
>
>
>>$string ereg_replace ('[a-zA-ZæøåÆØÅ]','#',$string);
>>
>>men det jeg gerne vil er at erstatte alle de andre tegn med "#". Jeg her
>>prøvet at putte et "!" tegn ind sådan lidt rundt omkring, men jeg kan
>>ikke rigtigt få det til at virke.
>
>
> ! skal kun bruges ved logiske sammenligninger. Her er det regulære
> udtryks egne koder, der skal bruges.
>
> Løsningen er at sætte et ^ i starten af en klasse, fx:
>
> ereg_replace ('[^a-zA-ZæøåÆØÅ]','#',$string);
>
tak!
| |
Thomas Finnerup (29-07-2003)
| Kommentar Fra : Thomas Finnerup |
Dato : 29-07-03 11:39 |
|
On Tue, 29 Jul 2003 10:31:03 +0200, Kasper Birch Olsen <nospam@fb.dk>
wrote:
> > ereg_replace ('[^a-zA-ZæøåÆØÅ]','#',$string);
>
> tak!
I øvrigt kan det anbefales at bruge
ereg_replace("[^[:alpha:]]", "#", $string);
så den også bevarer diverse accent-varianter (éöñ, osv).
Venligst
Thomas
| |
Peter Brodersen (29-07-2003)
| Kommentar Fra : Peter Brodersen |
Dato : 29-07-03 19:53 |
|
On Tue, 29 Jul 2003 12:38:41 +0200, Thomas Finnerup <TF@Picco.dk>
wrote:
>I øvrigt kan det anbefales at bruge
>
> ereg_replace("[^[:alpha:]]", "#", $string);
>
>så den også bevarer diverse accent-varianter (éöñ, osv).
Ikke her - heller ikke selvom jeg sætter en passende setlocale().
I det hele taget må jeg i skam erkende, at jeg er gået lidt væk fra at
bruge locale-oplysninger i diverse projekter. Der er simpelthen for
meget bøvl med udbydere, der ved PHP-installationer på bestemte
platforme ikke lige har relevante locales liggende, og så fremdeles...
--
- Peter Brodersen
Ugens sprogtip: kutyme (og ikke kotume)
| |
|
|