Mit regulärem Ausdruck realisierbar
Gerli
- programmiertechnik
0 berlinsurfer0 Take
Hallo,
ich möchte, dass + oder - höchstns einmal in einem String vorkommt.
Das mehrfache direkt hintereinander habe ich ja im Griff durch [+-]{0,1}.
Aber das verhindert ja nicht, dass es weiter hinten im String noch einmal vorkommt. Wie kann ich dies prüfen?
Danke
Gerlinde
Hallo Gerlinde,
schau mal hier:
[^+]*+?[^+]*
Je nachdem was du mit dem String anstellen willst, könntest du das Ergebnis natürlich noch speichern (Klammern).
Gruß
Moin,
warum denn immer gleich mit Kanonen auf Spatzen schießen? Die normale Stringfunktion substr_count ist da doch viel besser geeignet, als RegExe.
if (substr_count($string, '-') > 1 or substr_count($string, '+') > 1)
echo 'Fehler.'
else
echo 'OK.'
Gruß,
Take
warum denn immer gleich mit Kanonen auf Spatzen schießen?
Zawinski :)
Die normale Stringfunktion substr_count ist da doch viel besser geeignet, als RegExe.
Dass es sich um PHP dreht, wissen wir doch nicht - aber weil wir grade bei PHP sind: ganz kreativ lässt sich dasselbe auch mit str_replace erreichen - man ersetzt einfach + durch irgend etwas anderes und zählt die Anzahl der ersetzungen, wurde != 1x ersetzt ...
Hi,
Die normale Stringfunktion substr_count ist da doch viel besser geeignet, als RegExe.
Dass es sich um PHP dreht, wissen wir doch nicht - aber weil wir grade bei PHP sind: ganz kreativ lässt sich dasselbe auch mit str_replace erreichen - man ersetzt einfach + durch irgend etwas anderes und zählt die Anzahl der ersetzungen, wurde != 1x ersetzt ...
bei PHP:
strpos(...) === stripos(...)
bzw. in anderen Sprachen oft indexOf(...) == lastIndexOf(...)
wäre auch noch ne Möglichkeit ...
cu,
Andreas
Moin,
warum denn immer gleich mit Kanonen auf Spatzen schießen?
Zawinski :)
Hmwa? Google führt mich zu ihm hier, aber was hat der denn hier zu bedeuten?
Dass es sich um PHP dreht, wissen wir doch nicht - aber weil wir grade bei PHP sind: ganz kreativ lässt sich dasselbe auch mit str_replace erreichen - man ersetzt einfach + durch irgend etwas anderes und zählt die Anzahl der ersetzungen, wurde != 1x ersetzt ...
Oh, mal wieder etwas vorschnell... Aber das Ersetzen ist doch bestimmt Performancelastiger als das reine Zählen oder? :D
Gruß,
Take
@@Take:
nuqneH
Zawinski :)
Hmwa? Google führt mich zu ihm hier, aber was hat der denn hier zu bedeuten?
Falsche Suchmaschine. Die Zitatesammlung führt dich zu ihm.
Qapla'
Moin,
Falsche Suchmaschine. Die Zitatesammlung führt dich zu ihm.
Ach, der Spruch. Mit dem hatte ich ja auch schon mal Bekanntschaft...
Gruß,
Take
Hi,
warum denn immer gleich mit Kanonen auf Spatzen schießen?
Zawinski :)
Hmwa? Google führt mich zu ihm hier, aber was hat der denn hier zu bedeuten?
"Some people, when confronted with a problem, think 'I know, I’ll use regular expressions.' Now they have two problems." --Jamie Zawinski
cu,
Andreas
Moin,
warum denn immer gleich mit Kanonen auf Spatzen schießen? Die normale Stringfunktion substr_count ist da doch viel besser geeignet, als RegExe.
if (substr_count($string, '-') > 1 or substr_count($string, '+') > 1)
echo 'Fehler.'
else
echo 'OK.'
Hi,
die Lösung ist ganz bestimmt nicht richtig, denn da kann + einmal vorkommen u n d - einmal vorkommen.
Es darf aber nur + oder - einmal vorkommen!
Gruß
Gerli
@@Gerli:
nuqneH
die Lösung ist ganz bestimmt nicht richtig, denn da kann + einmal vorkommen u n d - einmal vorkommen.
Es darf aber nur + oder - einmal vorkommen!
Du kannst 1 und 1 zusammenzählen?
if (substr_count($string, '-') + substr_count($string, '+') > 1)
Qapla'
@Qapla
Es darf aber nur + oder - einmal vorkommen!
Kannst Du lesen?
Ich habe aber nicht geschrieben "es darf nur ein + u n d ein - vorkommen"!
Du kannst 1 und 1 zusammenzählen?
Ich schon, aber Du hast wohl das Beispiel von Take nicht angeschaut!
Wenn in seinem Beispiel ein + vorhanden ist u n d ein -, so ist dies dort OK.
if (substr_count($string, '-') + substr_count($string, '+') > 1)
Das war nicht Takes Beispiel!
Gerlinde
@@Gerli:
nuqneH
@Qapla
??
Es darf aber nur + oder - einmal vorkommen!
Kannst Du lesen?
_Ich_ schon.
Du kannst 1 und 1 zusammenzählen?
Ich schon, aber Du hast wohl das Beispiel von Take nicht angeschaut!
Doch. Ich habe es sogar verstanden.
if (substr_count($string, '-') + substr_count($string, '+') > 1)
Das war nicht Takes Beispiel!
Du wolltest Takes Code für deinen Anwendungsfall berichtigt haben, das hab ich getan. Also was hast du dich jetzt hier zu beschweren?
Qapla'
Du wolltest Takes Code für deinen Anwendungsfall berichtigt haben, das hab ich getan. Also was hast du dich jetzt hier zu beschweren?
Du hast auf meine Antwort an Take:
»»»» die Lösung ist ganz bestimmt nicht richtig, denn da kann + einmal vorkommen u n d - einmal vorkommen.
»»»» Es darf aber nur + oder - einmal vorkommen!
geschrieben:
Du kannst 1 und 1 zusammenzählen?
Das ist doch eindeutig zu verstehen als Vorwurf, ich hätte das Beispiel von Take nicht verstanden!
Erst danach stellst Du Dein Beispiel vor.
Und wenn sich Dein Satz "Du kannst 1 und 1 zusammenzählen?"
darauf beziehen sollte, so ist dies erst recht eine Unterstellung!
@@Gerli:
nuqneH
Das ist doch eindeutig zu verstehen als Vorwurf, ich hätte das Beispiel von Take nicht verstanden!
Äh, ich hoffe nicht. So war es nämlich nicht gemeint.
Und wenn sich Dein Satz "Du kannst 1 und 1 zusammenzählen?"
darauf beziehen sollte, so ist dies erst recht eine Unterstellung!
Nun bleib mal auf’m Teppich.
Qapla'