php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 12.11.2009, 13:05  
Neuer Benutzer
 
Registriert seit: 12.11.2009
Beiträge: 8
PHP-Kenntnisse:
Anfänger
smmrvle befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] regular expression: einen abschnitt filtern

hallo,

ich moechte bestimmte abschnitte von einem html dokument in ein anderen uebertragen bzw da ersetzen. daher suche ich die entsprechenden abschnitte im ersten dokument erstmal, aber das klappt nicht

bsp moecht ich
PHP-Code:
[......]
p.MsoHeaderli.MsoHeaderdiv.MsoHeader
    
{margin:0cm;
    
margin-bottom:.0001pt;
    
mso-pagination:widow-orphan;
    
tab-stops:center 8.0cm right 16.0cm;
    
font-size:12.0pt;
    
font-family:"Times New Roman";
    
mso-fareast-font-family:"Times New Roman";}
[.......] 
aus dem html dokument filtern. mit

PHP-Code:
    preg_match('/.*p\.MsoHeader\,\ li\.MsoHeader\,\ div\.MsoHeader\s*\{\s*.*\s.*\s*.*\s*.*\s*.*\s*.*\s*.*\}/'$srcContent$matches); 
klappt das auch, ist aber haesslich und sehr spezifisch.

warum funktioniert zb

PHP-Code:

    preg_match
('/.*p\.MsoHeader\,\ li\.MsoHeader\,\ div\.MsoHeader\s*\{[\s*.*]*\}/'$srcContent$matches); 
oder sowas

PHP-Code:
    preg_match('/.*p\.MsoHeader\,\ li\.MsoHeader\,\ div\.MsoHeader\s*\{[\s|.]*\}/'$srcContent$matches); 
nicht? ersteres heisst doch quasi die klasse aller zeichen incl aller leerzeichen, und da alle beliebig oft. oder zweiteres entweder ein leerzeichen oder ein zeichen, und das beliebig oft. das muss doch diesen block zwischen den geschweiften klammern erfassen?

oder wie kann ich das sonst am besten machen?

danke

Geändert von smmrvle (17.11.2009 um 15:28 Uhr).
smmrvle ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 12.11.2009, 14:03  
Moderator
 
Benutzerbild von Asipak
 
Registriert seit: 18.07.2005
Beiträge: 4.072
Asipak sorgt für eine eindrucksvolle AtmosphäreAsipak sorgt für eine eindrucksvolle Atmosphäre
Standard

Verwende bitte die Code-Tags des Forums: [php] // dein Code[/php] damit wir deinen Code besser lesen können!
Asipak ist offline  
Alt 17.11.2009, 15:28  
Neuer Benutzer
 
Registriert seit: 12.11.2009
Beiträge: 8
PHP-Kenntnisse:
Anfänger
smmrvle befindet sich auf einem aufstrebenden Ast
Standard

ok...sollte nun besser lesbar sein
smmrvle ist offline  
Alt 17.11.2009, 15:35  
Erfahrener Benutzer
 
Registriert seit: 26.10.2009
Beiträge: 425
PHP-Kenntnisse:
Fortgeschritten
Yoshi- befindet sich auf einem aufstrebenden Ast
Standard

Das Problem ist einfach das \s jedes Zeichen ist außer Leerzeichen, Tab, Zeilenumbruch undso weiter.
Du könntest .*? benutzen um jedes Zeichen zu finden.
Yoshi- ist offline  
Alt 17.11.2009, 15:49  
Neuer Benutzer
 
Registriert seit: 12.11.2009
Beiträge: 8
PHP-Kenntnisse:
Anfänger
smmrvle befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Yoshi- Beitrag anzeigen
Das Problem ist einfach das \s jedes Zeichen ist außer Leerzeichen, Tab, Zeilenumbruch undso weiter.
Du könntest .*? benutzen um jedes Zeichen zu finden.
mh auf allen Seiten die ich bisher gefunden haben steht genau das gegenteil:

"\s - Matched auf alles was kein sichtbares Zeichen ist, wie Leerzeichen oder Zeilenumbrüche. Das s kommt dabei von Whitespace."
oder ähnliches. Macht auch Sinn, da ich es ja am Anfang auch schonmal benutze um den Abstand vom "div.MsoHeader" zum "{" zu matchen, und das klappt ja.

etwas wie
PHP-Code:
preg_match_all('/.*p\.MsoHeader\,\ li\.MsoHeader\,\ div\.MsoHeader.*?\{.*?\}/'$srcContent$matches); 
funktioniert auch nicht
smmrvle ist offline  
Alt 17.11.2009, 15:50  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.990
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
bsp moecht ich
Bitte spezifizieren! Beispiele bringen uns hier nicht weiter.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
Alt 17.11.2009, 15:54  
Erfahrener Benutzer
 
Registriert seit: 26.10.2009
Beiträge: 425
PHP-Kenntnisse:
Fortgeschritten
Yoshi- befindet sich auf einem aufstrebenden Ast
Standard

Natürlich hab es mit \S verwechselt
so müsste es gehen
.*p\.MsoHeader, li\.MsoHeader, div\.MsoHeader\s*\{.*?\}
Yoshi- ist offline  
Alt 17.11.2009, 16:10  
Neuer Benutzer
 
Registriert seit: 12.11.2009
Beiträge: 8
PHP-Kenntnisse:
Anfänger
smmrvle befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von nikosch Beitrag anzeigen
Bitte spezifizieren! Beispiele bringen uns hier nicht weiter.
mh wieso? ich moechte aus einem beliebigen HTML dokument den ua oben besagten Block rausfiltern.. warum soll ich das denn jetzt abstrahieren bzw um alle bloecke erweitern die ich matchen moechte (ich denke mal wenn ich weiss wie das mit diesem hier funktioniert, bekomme ich die anderen auch hin )

Zitat:
Zitat von Yoshi- Beitrag anzeigen
Natürlich hab es mit \S verwechselt
so müsste es gehen
.*p\.MsoHeader, li\.MsoHeader, div\.MsoHeader\s*\{.*?\}
nein geht leider auch nicht (array matches ist leer)
smmrvle ist offline  
Alt 17.11.2009, 16:16  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.990
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Wir wissen nicht, was Du suchst, ob oben auch mal ein Leerzeichen mehr oder eine andere Reihenfolge oder auch mal ein Selektor mehr vorkommen kann. Sonst könntest Du ja easy str_replace verwenden. Wenn es denn so einfach ist, frage ich mich, wozu der Thread aufgemacht wurde.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
Alt 17.11.2009, 16:22  
Neuer Benutzer
 
Registriert seit: 12.11.2009
Beiträge: 8
PHP-Kenntnisse:
Anfänger
smmrvle befindet sich auf einem aufstrebenden Ast
Standard

wenn nicht ganz klar ruebergekommen ist, was ich moechte:

in einem beliebigen html dokument den inhalt rausbekommen, der zwischen

"p.MsoHeader, li.MsoHeader, div.MsoHeader
{"

und

"}" steht. Der inhalt kann dabei beliebig sein.
die "{" kann dabei oben auch in derselben zeile stehen, mit einem, keinem oder mehreren leerzeichen von "div.MsoHeader" getrennt sein.
smmrvle 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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Domain Pfad Regular Expression 1234d1 PHP Tipps 2009 9 10.09.2009 19:36
[Erledigt] Regular Expression Telefonnummer cetalian PHP Tipps 2009 10 08.07.2009 18:50
[Erledigt] Regular Expression: Attribute mit " " oder ' ' matchen SeppDepp PHP Tipps 2009 8 20.06.2009 23:00
Expression Forge stellt ein! (Ehrenamt) eXpression Beitragsarchiv 2 14.06.2009 20:46
[Erledigt] Regular Expression: Tabellennamen aus query extrahieren Celli PHP Tipps 2009 7 31.05.2009 16:42
Frage zu Regular Expression Schiedsrichter PHP Tipps 2008 1 19.09.2007 16:41
regular expression? Dilandau PHP Tipps 2006 55 30.06.2006 16:10
regular Expression verstehen GothicFiction PHP Tipps 2006 14 23.05.2006 23:15
Suchen und ersetzen mit Regular Expressions? Datenbanken 0 09.09.2005 15:21
Regular Expression - Alles zwischen Anführungzeichen PHP Tipps 2005-2 3 05.08.2005 14:07
Text aus plain text datei filtern PHP-Fortgeschrittene 7 19.07.2005 15:59
Regular Expression, Suchen bis zum ersten suppart... PHP-Fortgeschrittene 7 04.05.2005 09:03
Posix Regular Expression Problem PHP Tipps 2005 9 15.02.2005 15:59
[Erledigt] Datum mit Regular Expression kontrollieren PHP Tipps 2004-2 7 06.12.2004 09:44
[Erledigt] regular expression: bin zu blöd PHP-Fortgeschrittene 2 08.11.2004 13:12

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
http://www.php.de/php-einsteiger/61143-erledigt-regular-expression-einen-abschnitt-filtern.html, regular expression tab zeilenumbruch, regular expression filter, regular expression telefon filter, php textabschnitt filtern, regex zeilenumbruch, textabschnitt filtern, regular expression php text in klammern filtern, regulärer ausdruck html filtern, regex über zeilenumbrüche filtern, telefonnummer filtern regex, php tab durch leerschritt regular expression, regex html filtern, regex telefonnummer filtern, regex beliebig viele zeichen bis zeichen, php regex klammern, php preg filter leerzeichen tabs, regular expression zwischen, oder einen abschnitt, regex leerzeichen tab zeilenumbruch

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