php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.10.2005, 12:23  
Erfahrener Benutzer
 
Registriert seit: 25.04.2005
Beiträge: 1.356
HStev zeigte ein beschämendes Verhalten in der Vergangenheit
Standard Multiline RegEx

Servus,

ich hab ein kleines Problem mit einen RegEx...
ich habe eine Datei die wie folgt ausgebaut ist:

Code:
C
Dies ist
der 1. Testtext.
c
C
Dies ist
der 2. Testtext.
c
ich versuche nun die Textstellen zwischen C\n und \nc zu bekommen aber irgendwie hauts ned hin...

PHP-Code:
<?php
$file_content 
file_get_contents("temp");

$pattern '|C\n(.*)\nc|m';

preg_match($pattern$file_content$matches);

echo 
"<pre>";
print_r($matches);
echo 
"</pre>";
?>
weiß jemand wo mein Denkfehler liegt?
HStev ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 06.10.2005, 13:14  
Gast
 
Beiträge: n/a
Standard

eventuell mal so versucht

Code:
$str=str_replace(array("C\n","\nc"),array('','~'),$file_content);
$array=explode('~',$str);


echo "<pre>";
var_dump($array);
echo "</pre>";
 
Alt 06.10.2005, 14:39  
Erfahrener Benutzer
 
Registriert seit: 29.10.2004
Beiträge: 1.781
derHund
Standard

außerdem hast du den modifier m falsch verstanden. erstens brauchst du ihn hier nicht und zweitens müßtest du ^ und/oder $ (assertions) verwenden, damit er überhaupt wirkung zeigt.

außerdem mußt du \n innerhalb von " (und nicht ') notieren, damit es als zeilenumbruch erkannt wird. ohne modifier s wird auch .* niemals auf mehrzeiligen text zutreffen.
__________________
derHund ist offline  
Alt 06.10.2005, 16:01  
Erfahrener Benutzer
 
Registriert seit: 25.04.2005
Beiträge: 1.356
HStev zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Selbst mit den Erklärungen hier im Thread war ich irgendwie nicht dazu in der Lage ein Pattern zu schreiben welches zutrifft.

Wie müsste denn das Pattern richtig aussehen damit es auf den Text angewandt funktioniert?
HStev ist offline  
Alt 06.10.2005, 16:07  
Gast
 
Beiträge: n/a
Standard

preg_match("#^(C\n)(.*)(\nc)#sU", $file_content, $matches);
 
Alt 06.10.2005, 16:12  
Erfahrener Benutzer
 
Registriert seit: 25.04.2005
Beiträge: 1.356
HStev zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

hmm sorry aber das erzeugt bei mir keinen Treffer
__________________
Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.
HStev ist offline  
Alt 06.10.2005, 16:17  
Gast
 
Beiträge: n/a
Standard

dann solltest du dein script nach unix konvertieren oder das newlinezeichen anpassen

dos - unix (cr/lf - lf)

oder mal http://regexp-evaluator.de/
lesen
 
Alt 06.10.2005, 18:14  
Gast
 
Beiträge: n/a
Standard

Wenn das erste C immer gross, und das zweite c immer klein ist, dann gehts auch so:

'~C(.+)c~sU'

oder

'~C(.*?)c~s'

mehr nicht.
 
Alt 06.10.2005, 19:29  
Erfahrener Benutzer
 
Registriert seit: 29.10.2004
Beiträge: 1.781
derHund
Standard

@cix : so gehts nicht. der linebreak muß zwingend im pattern auftauchen, sonst paßts auch bei Text, der einfach C und c enthält.
__________________
derHund ist offline  
Alt 06.10.2005, 19:41  
Gast
 
Beiträge: n/a
Standard

Achso stimmt ja !
Sorry, da lag ich voll daneben ...
 
 


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
Array sortieren mit regex Lupi PHP Tipps 2008 3 21.07.2008 15:17
Regex: Auslesen der Meta-Tags einer Webseite Sucheingrenzung pepe24 PHP Tipps 2008 12 31.05.2008 15:41
2 Regex in PHP kompatible Syntax übersetzen NoiZy PHP-Fortgeschrittene 6 07.04.2008 09:04
Regex Link Problem Broadcast PHP Tipps 2008 2 29.02.2008 16:30
[gelöst :D ] regex tuts nur einmal pro zeile notyyy PHP Tipps 2008 17 24.09.2007 15:40
RegEx für Mail-Adresse (Bitte prüfen!) vollkommenegal PHP Tipps 2006 13 20.11.2006 20:02
Regex löscht alle Zeilenumbrüche. Anduril PHP Tipps 2006 3 16.10.2006 22:36
habe ein paar fragen zu REGEX imported_kremser PHP Tipps 2006 11 31.01.2006 15:30
RegEx findet Stringvorkommen nicht PHP Tipps 2007 6 08.12.2005 21:52
RegEx auf starkes passwort und erlaubte zeichen prüfen GothicFiction PHP-Fortgeschrittene 4 10.04.2005 21:10
Lösungsansatz fehlt: RegEx soll eine Funktion "aufrufen Kort PHP Tipps 2005 6 03.04.2005 18:15
RegEx? DerDesian PHP Tipps 2005 2 08.03.2005 12:57
Anker Links parsen (RegEx) Spyker PHP Tipps 2005 1 31.01.2005 12:01
Regex für attribute in quelltexten robo47 PHP Tipps 2005 6 27.01.2005 18:29
Problem mit regex PHP Tipps 2004 1 09.09.2004 10:00

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
regex multiline, multiline regex, preg php multiline, regex multi line, php multiline regular expression, regex multinline, preg_match php multiline, regex text zwischen mehrzeilig

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