WinFuture-Forum.de: Eregi Mit Sonderzeichen - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Eregi Mit Sonderzeichen


#1 Mitglied ist offline   Spezi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 478
  • Beigetreten: 24. Februar 04
  • Reputation: 0
  • Wohnort:Wesel

geschrieben 21. Juni 2005 - 15:18

Hy,

hab ne kleine Frage zu diesem Code:
ereg("([a-z]{1,8})", $string, $regs);

So wie ich das verstehe wird in einer Zeichenkette dann nach einem kleingeschriebenen Wort mit maximal 8 Buchstaben gesucht, oder ?
Wie kann ich jetzt aber z.B. diese "{" / "}"-Klammern als normal zu suchenden Text setzen, da das ja steuerzeichen sind?
Soweit ich weis muss man sowas mit "\" Escapen, aber es klappt nicht.
0

Anzeige



#2 Mitglied ist offline   Yalamand 

  • Gruppe: aktive Mitglieder
  • Beiträge: 101
  • Beigetreten: 19. Mai 05
  • Reputation: 0

geschrieben 21. Juni 2005 - 15:35

Diese regex sucht nach einem Buchstaben von a-z (kleingeschrieben, sonst eregi) auf den wiederum bis zu 7 buchstaben, die in die a-z regel fallen, folgen und geben diesen (in den Klammern) Wert zurück.

Innerhalb einer Charakterklasse ( [..] ) gelten nicht die selben Regeln wie ausserhalb, weshalb { } eigentlich keine Sonderzeichen sind.

D.h.

ereg("([a-z{}]{1,8})", $string, $regs);


sollte eigentlich gehen.

also unter PHP gehts. z.b. "{abc}" wird erkannt ebenso wie "abc".

Ich denke mal du willst aber nur "{abc}" finden?

Dann wäre dies wohl das richtige:
ereg("\{([a-z]{1,8})\}", $string, $regs);


das findet nur "{abc}" und nicht "abc"

Dieser Beitrag wurde von Yalamand bearbeitet: 21. Juni 2005 - 16:01

0

#3 Mitglied ist offline   Rika 

  • Gruppe: aktive Mitglieder
  • Beiträge: 11.533
  • Beigetreten: 11. Juni 03
  • Reputation: 2
  • Geschlecht:Männlich

geschrieben 21. Juni 2005 - 15:42

Zitat

Wie kann ich jetzt aber z.B. diese "{" / "}"-Klammern als normal zu suchenden Text setzen, da das ja steuerzeichen sind?
Soweit ich weis muss man sowas mit "\" Escapen, aber es klappt nicht.

Da es sich um C-Code handelt, musst du jeweils für den eventuellen Preprocessorlauf und den Compilerlauf jeweils ein Escaping vorsehen. D.h. "\\\/" oder gar "\\\\\\/".
Konnichiwa. Manga wo shitte masu ka? Iie? Gomenne, sonoyouna koto ga tabitabi arimasu. Mangaka ojousan nihongo doujinshi desu wa 'Clamp X', 'Ayashi no Ceres', 'Card Captor Sakura', 'Tsubasa', 'Chobits', 'Sakura Taisen', 'Inuyasha' wo 'Ah! Megamisama'. Hai, mangaka gozaimashita desu ni yuujin yori.
Eingefügtes Bild
Ja, mata ne!

(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
0

#4 Mitglied ist offline   Spezi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 478
  • Beigetreten: 24. Februar 04
  • Reputation: 0
  • Wohnort:Wesel

geschrieben 21. Juni 2005 - 20:08

Zitat (Yalamand: 21.06.2005, 16:35)

ereg("\{([a-z]{1,8})\}", $string, $regs);

Hmm, funktioniert bei mir irgendwie nicht.

Zitat

Da es sich um C-Code handelt, musst du jeweils für den eventuellen Preprocessorlauf und den Compilerlauf jeweils ein Escaping vorsehen. D.h. "\\\/" oder gar "\\\\\\/".

Das Leider auch nicht.

Habe bei mir jetzt stehen:
ereg("\{([a-z]{1,8})\}", $string, $regs)

Klappt aber nicht, auch nicht mit den 3 bzw. 6 "\" vor den Klammern. :)
0

#5 Mitglied ist offline   Yalamand 

  • Gruppe: aktive Mitglieder
  • Beiträge: 101
  • Beigetreten: 19. Mai 05
  • Reputation: 0

geschrieben 21. Juni 2005 - 23:28

was heisst "irgendwie"? *g* gib mal nen quellbeispiel
0

#6 Mitglied ist offline   Spezi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 478
  • Beigetreten: 24. Februar 04
  • Reputation: 0
  • Wohnort:Wesel

geschrieben 22. Juni 2005 - 12:25

Ahh, sorry klappt doch. ;D

Anderer Fehler. ^_^
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0