mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 28.03.2024 11:14 Benutzername: Passwort: Auto-Login

Thema: PHP: Einen String nach einem festen Substring durchsuchen vom 10.02.2005


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> PHP: Einen String nach einem festen Substring durchsuchen
Seite: 1, 2  Weiter
Autor Nachricht
graphicsandunity
Threadersteller

Dabei seit: 22.11.2004
Ort: Berlin
Alter: 40
Geschlecht: Männlich
Verfasst Do 10.02.2005 20:09
Titel

PHP: Einen String nach einem festen Substring durchsuchen

Antworten mit Zitat Zum Seitenanfang

Hallo Forum,

der Titel klingt zwar danach, als ob ich nicht gesucht hätte. Dem ist nicht so aber ich nutze das mal als Vorteil aus. Grins

Also mein Problem ist folgendes:

Ich möchte eine Eingabe eines Users nach einer ganz bestimmten Zeichenkette durchsuchen.
Und zwar nach genau dieser.

Hier ein Beispiel, wie ich das meine:

Sagen wir ich habe eine User-Eingabe

Code:


$eingabe = "Ich bin vielleicht doof."



Nun will ich nach dem Wort viel suchen

Code:


$suche = eregi ('viel', $eingabe);



Dabei wird verständlicherweise true draus, weil ja das Wort "viel" in "vielleicht" drin steckt.
Das ist aber nicht das was ich will. Ich will genau das Wort "viel" und es nicht als Wortteil aus einem größeren Wort.

Ich hab das auch schon mit den String-Funktionen von PHP versucht. Ist aber genau das selbe bei raus gekommen.

Gibt es einen Weg das zu lösen?

Wichtig ist natürlich, dass der ganze spaß auch das gesuchte Teilwort in der Mitte und am Ende eines größeren Strings ausschließt.

Hoffe es war alles verständlich und nich zu verquer.

Erstmal Danke
GaU
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
gtz

Dabei seit: 15.04.2002
Ort: -
Alter: 48
Geschlecht: Männlich
Verfasst Do 10.02.2005 20:14
Titel

Antworten mit Zitat Zum Seitenanfang

du willst uns wohl verarschen?

pack bei deinem regexp noch alle moglichen whitespace- und satzzeichen außen rum und gut is. daskann doch so schwer echt nich sein?
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
graphicsandunity
Threadersteller

Dabei seit: 22.11.2004
Ort: Berlin
Alter: 40
Geschlecht: Männlich
Verfasst Do 10.02.2005 20:17
Titel

Antworten mit Zitat Zum Seitenanfang

Ich bitte vielmals um Verzeihung der Herr. Ich bin nicht so bewandert mit der Regex-Engine.
Da hab ich noch nicht ganz durchgeblickt.

Also müssen die Sonder- und das Leerzeichen einmal vorne und einmal hinten ran, wen ich das richtig verstanden hab?


Zuletzt bearbeitet von graphicsandunity am Do 10.02.2005 22:30, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
gtz

Dabei seit: 15.04.2002
Ort: -
Alter: 48
Geschlecht: Männlich
Verfasst Do 10.02.2005 20:21
Titel

Antworten mit Zitat Zum Seitenanfang

oder dir da smal anzulesen mit den regexp kommst du auf keinen grünen zweig damit.

prinzipiell so:
Code:

((eines der möglichen wort-grenz-zeichen)beliebig oft)viel((eines der möglichen wort-grenz-zeichen)beliebig oft)
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
graphicsandunity
Threadersteller

Dabei seit: 22.11.2004
Ort: Berlin
Alter: 40
Geschlecht: Männlich
Verfasst Do 10.02.2005 20:27
Titel

Antworten mit Zitat Zum Seitenanfang

Ach sooo.

Alles klar.

Das ist ja simpel. Da hab ich wohl wieder zu komplex gedacht. *schäm*

Ich hab ja die ganzen O'Reilly-Bücher über PHP. Und das was ich hier wollte war wohl zu einfach. lol
Ich bin immer am Verständnis einer "validen" E-Mail-Adresse gescheitert. Das verwirrt mich jedes mal ganz und gar.
Muss ich wohl noch eine Reihe von Beispielen für die Suchmuster sehen und verstehen.

Danke für die Hilfe. Lächel
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Account gelöscht


Ort: -
Alter: -
Verfasst Do 10.02.2005 22:19
Titel

Antworten mit Zitat Zum Seitenanfang

Pass aber mit dem Semikolon auf, et jibt ja auch noch Entities....
 
graphicsandunity
Threadersteller

Dabei seit: 22.11.2004
Ort: Berlin
Alter: 40
Geschlecht: Männlich
Verfasst Do 10.02.2005 23:32
Titel

Antworten mit Zitat Zum Seitenanfang

Also ich hab das jetzt so versucht aber das funzt nicht:

Code:


preg_match ('/[ ,.!?-]{1,}?'.$mein_array[$i].'[ ,.!?-]{1,}?/', $eingabe);



Ich hab eine Liste mit Zeichenketten, die in $eingabe gesucht werden sollen.
Also ich hab preg_match() genommen, weil es ja damit schneller gehen soll.
Nun frage ich mich nur, wo der Fehler is.

Ich verstehe, das was ich da geschrieben hab so:

erst wird nach einem der Interpunktionszeichen gesucht, wenn gefunden, dann nach dem Array-Element gucken und wenn das da is, wieder nach einem der Interpunktionszeichen suchen.
Wo is da der Denkfehler?

Hoffe ich blick irgendwann in naher Zukunft bei diesen Mustern durch. *flenn*


Zuletzt bearbeitet von graphicsandunity am Do 10.02.2005 23:33, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Account gelöscht


Ort: -
Alter: -
Verfasst Fr 11.02.2005 00:02
Titel

Antworten mit Zitat Zum Seitenanfang

der Punkt "." ist ein Sonderzeichen (steht für EIN beliebiges Zeichen) => muss escaped werden. Genauso wie das "?".

Aber so wie du das machst, wirst du NICHT zum Ziel kommen. Warum? Du willst deine Suchergebnisse mit dem "?" wieder auf 0 oder 1 Vorkommen reduzieren. Damit bist du wieder da, wo du vorher auch warst.

StrickLiesel.

Du musst also reguläre Wortgrenzen beachten:
$pattern = "/[ ,\.!\?]DeinWort[ ,\.!\?-]/";

Und dann noch den Satzanfang und das Satzende berücksichtigen. Vielleicht kannst du das Satzende und den Anfang auch in einem ersten Schritt maskieren, indem du irgend ein Zeichen oder eine Kombination davor und dahinter hängst. Damit hättest du zusätzlich zur Menge [ ,\.!\?] einen eindeutigen Bezeichner.

Wer ne bessere Lösung weiß: Her damit!!!!


Zuletzt bearbeitet von am Fr 11.02.2005 00:04, insgesamt 1-mal bearbeitet
 
 
Ähnliche Themen PHP String nach fast variablen Teilstring durchsuchen
RegExp String zwischen 2 Zeichen in einem String entfernen
Text sinnvoll kürzen mit „substring()”
Festen Footer erzeugen
Diesen Mac durchsuchen!
OS X | CSV Dateien durchsuchen
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.