php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.05.2005, 19:45  
Erfahrener Benutzer
 
Registriert seit: 25.02.2005
Beiträge: 109
ggfan
Standard Bei Regulären Ausdrücken nach zwei Wörtern suchen

Abend,
ich bin bei regexps keine allzu große Leuchte.
Ich habe eine Zeichenkette und ich möchte überprüfen, ob in dieser zwei Zeichenketten vorliegen. Also wie bei der phpbb-Suche "AND".
Wie mache ich das.

Andy
ggfan ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 06.05.2005, 19:52  
Gast
 
Beiträge: n/a
Standard

Kommt es auf die Reihenfolge an oder einfach nur darauf, dass sie überhaupt vorhanden sind?
 
Alt 06.05.2005, 20:01  
Erfahrener Benutzer
 
Registriert seit: 25.02.2005
Beiträge: 109
ggfan
Standard

Die Reihenfolge ist egal, sie solen nur vorkommen.
es soll eine Suche für meine Seite werden.
__________________
http://myfileadmin.aprescher.de
Dateiverwalter für Webserver.

http://www.literatur-dilettanten.de
ggfan ist offline  
Alt 06.05.2005, 20:09  
Gast
 
Beiträge: n/a
Standard

Versuch mal folgendes:

/(^(wort1|wort2))+(*)(^(wort1|wort2))+/im
 
Alt 06.05.2005, 20:44  
Erfahrener Benutzer
 
Registriert seit: 29.10.2004
Beiträge: 1.781
derHund
Standard

@Du-weisst-schon-wer: was soll das denn? was macht das zweite ^ mitten im regexp?
wozu soll das erste sein? und warum modifier m? außerdem könnte doch so wort 1 zweimal/mehrmals vorkommen, wort zwei garnicht ... und wozu das plus? und wozu der stern in der klammer? => nothing to repeat ...

wie wärs mit zwei einzelnen prüfungen? ansonsten conditional subpattern ...
__________________
derHund ist offline  
Alt 07.05.2005, 11:53  
Erfahrener Benutzer
 
Registriert seit: 25.02.2005
Beiträge: 109
ggfan
Standard

also ich hab den Ausdruck von Du-weisst-schon-wer ein bisschen umgebaut und jetzt gehts:
(Wort1|Wort2)+.*(Wort1|Wort2)+
__________________
http://myfileadmin.aprescher.de
Dateiverwalter für Webserver.

http://www.literatur-dilettanten.de
ggfan ist offline  
Alt 07.05.2005, 12:10  
Gast
 
Beiträge: n/a
Standard

Immer noch das von derHund angesprochene Problem
PHP-Code:
<?php

$pattern 
'!(Wort1|Wort2)+.*(Wort1|Wort2)+!';
$haystack 'abcWort1lalalaWort1cba';

if( 
preg_match($pattern$haystack) )
    echo 
'passt.';
?>
Ausgabe: passt.
obwohl Wort2 nicht vorkommt.

(?(?=Wort1).*Wort2|Wort2.*Wort1) funktioniert vielleicht (nicht getestet)
aber selbst wenn, kann ich es nicht empfehlen.
 
Alt 07.05.2005, 12:23  
Erfahrener Benutzer
 
Registriert seit: 25.02.2005
Beiträge: 109
ggfan
Standard

Es soll auch möglich sein nach drei vier oder fünf Wärtern zu suchen.
Daher wird (?(?=Wort1).*Wort2|Wort2.*Wort1) ein ziemlicher Brocken werden.

Ich glaub ich lass meine Lösung und Probiers mal mit Einzelabfragen(ist wohl das einzige was funktioniert und was ich auch verstehe)
ggfan ist offline  
Alt 07.05.2005, 13:46  
Erfahrener Benutzer
 
Registriert seit: 08.06.2004
Beiträge: 865
RudiS
Standard

Nur so als Tipp: Für das Suchen solltest du strpos() verwenden. Das dann halt einfach mehrmals ausführen und wenn eins false zurückgibt, wurden nicht alle Strings gefunden.
mfg RudiS
__________________
Kunst kommt von Können und nicht von wollen, denn sonst würde es ja Wunst heißen.
RudiS ist offline  
Alt 07.05.2005, 18:12  
Erfahrener Benutzer
 
Registriert seit: 25.02.2005
Beiträge: 109
ggfan
Standard

Probier ich mal aus.
Ich habs jetzt mit RegExp genommen und die gehen ganz gut.
Jedenfalls habe ich jetzt meine Seiten interne Suche.
__________________
http://myfileadmin.aprescher.de
Dateiverwalter für Webserver.

http://www.literatur-dilettanten.de
ggfan ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
nach wörter n suchen php, mit regulären ausdrücken zwei wörter suchen

Alle Zeitangaben in WEZ +2. Es ist jetzt 13:18 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.