php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 07.06.2006, 09:59  
Gast
 
Beiträge: n/a
Standard Sting Modifikationen mit preg_replace

Moin zusammen,

ich möchte in einem String jedes Vorkommen von
Code:
(Person: Gerda,  Alter: 55, Geschlecht: weiblich)
oder
Code:
Person: Frank, Alter: 32, Geschlecht:)
durch
Code:
Gerda ist 55 und weiblich
bzw
Code:
Frank ist 32 und männlich
ersetzen.

Dazu habe ich mir preg_replace() angesehen, scheine damit aber nur einzelne Teile austauschen zu können.
So kann ich z.B.
Code:
(Person:
durch 'nichts' austauchen oder
Code:
, Alter:
durch
Code:
 ist
.

Steht aber nun irgendwo
Code:
 Alter:
alleine im Text, würde das auch ausgetauscht....

Mir schwebt vor, wie in Perl das Suchmuster komplett zu beschreiben, mir die wieder zu verwendenden Teile zu merken (Backreference) und den String dann neu aufzubauen...
aber wie?

Die Backreference ist leer bzw. zeigt mir ein komisches Zeichen an...
Hat da jemand einen Tip?

Danke.
Stefan
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 07.06.2006, 10:07  
Erfahrener Benutzer
 
Benutzerbild von Andreas
 
Registriert seit: 22.04.2005
Beiträge: 391
Andreas ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Nummer 1:
PHP-Code:
<?php
echo preg_replace("/\(?Person:.*,.*Alter:.*,.*Geschlecht:.*(männlich|weiblich)\)?/i","nix",$string);
?>
Nummer 2:
PHP-Code:
<?php
echo preg_replace("/[\w]+ ist [0-9]+ und (männlich|weiblich)/i","nix",$string);
?>
EDIT:
Für Backreferences einfach die Gewünschten Teile in Klammern setzen.
Andreas ist offline  
Alt 07.06.2006, 10:30  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Wie immer solltest du darauf achten, die Eingabe-Daten bereits so lesefreundlich wie
möglich zu erhalten (per XML, CSV, ..).
Zergling-new ist offline  
Alt 07.06.2006, 11:30  
Gast
 
Beiträge: n/a
Standard

Prima, danke Euch.

Das mit den Klammern wusste ich. Ich bekam nur nicht die Referenz am Ziel angezeigt.

Etwas anders, als bei Euch, aber so läuft es jetzt:


PHP-Code:
<?php
$outputtext
=preg_replace("/\(Person: ([a-zA-Z ]+), Alter: (\d+) , Geschlecht: (weiblich|männlich)\)/""\\1 ist \\2 und \\3"$inputtext);
?>
Das war auch schon mein Gerüst, allerdings hatte ich nur einfache '\' vor der Referenz.

Danke noch einmal.
Stefan
 
Alt 07.06.2006, 13:57  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Und wenn ich Jörg, Karl-Heinz oder René heiße?
Zergling-new ist offline  
Alt 07.06.2006, 14:18  
Gast
 
Beiträge: n/a
Standard

Dank an Jörg, Karl-Heinz oder René (das wär mir eindeutig zu lang!) für den Hinweis.

man achte auf die Punktation :wink:
 
Alt 07.06.2006, 14:22  
Erfahrener Benutzer
 
Registriert seit: 23.08.2007
Beiträge: 1.510
M3g4Star befindet sich auf einem aufstrebenden Ast
Standard

*LOOOOOL*

hast den "wink mit dem Zaunspfahl" nicht ganz verstanden oder ???

Bitte beachte dieses hier :

(Person: ([a-zA-Z ]+)

und dann Zerglings Tip :
Zitat:
Zitat von Zergling
Und wenn ich Jörg, Karl-Heinz oder René heiße?
M3g4Star ist offline  
Alt 07.06.2006, 14:26  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Zergling-new ist offline  
Alt 07.06.2006, 14:34  
Gast
 
Beiträge: n/a
Standard

Zum Glück habe ich mich für das Anfänger-Forum entschieden

Klar, danke für den Tip. Werde es richten

Und nichts für Ungut an Jörg, Karl-Heinz oder René :wink:
 
 


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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Sting Teilen, die 1000ste XD PHP Tipps 2005-2 1 14.08.2005 01:34

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
preg_replace klammern

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:59 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.