php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 19.02.2007, 13:05  
Erfahrener Benutzer
 
Registriert seit: 05.04.2005
Beiträge: 1.333
Freeaak ist zur Zeit noch ein unbeschriebenes Blatt
Standard Regex funktioniert nicht wie ich will

Hallo!
Ich möchte durch folgenden Regulären Ausdruck

Code:
~\(.+\)~U (bzw u)
aus folgendem Text:

Code:
cos(pi*x)/(-ln(2)*x)
das herausbekommen:

(pi*x)
und
(-ln(2)*x)

aber es kommt statt (-ln(2)*x) das heraus:
Code:
(-ln(2) // U
bzw das:
Code:
(pi*x)/(-ln(2)*x) // u
Was ist an dem RegEx falsch?

Gruß Freeaak
__________________
"Wenn du nicht weißt, was du tust: Machs mit Eleganz!"

(Murphy's Gesetze)
Freeaak ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 19.02.2007, 13:22  
CIX88
Gast
 
Beiträge: n/a
Standard

Wird nicht ganz einfach, deshalb nur der Versuch:
'~(\([^()]+\)|\(.*\(.*\).*\))~'

EDIT:

Zitat:
~\(.+\)~U (bzw u)
Bitte nicht U mit u verwechseln, das sind 2 völlig verschiedene Modifer.
 
Alt 19.02.2007, 13:30  
Erfahrener Benutzer
 
Benutzerbild von dsmcg
 
Registriert seit: 11.10.2005
Beiträge: 2.405
dsmcg sorgt für eine eindrucksvolle Atmosphäredsmcg sorgt für eine eindrucksvolle Atmosphäredsmcg sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von CIX88
Wird nicht ganz einfach, deshalb nur der Versuch:
'~(\([^()]+\)|\(.*\(.*\).*\))~'.
Laut http://www.nettz.de/Service/regexp/ müsste das stimmen
__________________
Wie man Fragen richtig stellt
dsmcg ist offline  
Alt 19.02.2007, 13:36  
Erfahrener Benutzer
 
Registriert seit: 05.04.2005
Beiträge: 1.333
Freeaak ist zur Zeit noch ein unbeschriebenes Blatt
Standard

danke, das funtioniert soweit...
ich möchte nur die klammern matchen, vor denen kein buchstabe kommt, also:

~\W(\([^()]+\)|\(.*\(.*\).*\))~

=> ich möchte nur (-ln(2)*x) haben, er nimmt aber das / davor noch mit. Wie bekomme ich das weg?
__________________
"Wenn du nicht weißt, was du tust: Machs mit Eleganz!"

(Murphy's Gesetze)
Freeaak ist offline  
Alt 19.02.2007, 14:38  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
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

indem du das klammerst, was du benötigst. und dann von preg_match/preg_match_all den Wert des Arrayschlüssels 1 nutzt.
nikosch ist offline  
Alt 19.02.2007, 15:37  
Erfahrener Benutzer
 
Registriert seit: 05.04.2005
Beiträge: 1.333
Freeaak ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hmmm
bei diesem text funktioniert der RegEx nicht...
Code:
(x*(3+x))+(1/x+cos(x))-(x/(x-5))*(x^2)/sin(x)+ln(x+(4/x))
__________________
"Wenn du nicht weißt, was du tust: Machs mit Eleganz!"

(Murphy's Gesetze)
Freeaak ist offline  
Alt 19.02.2007, 16:32  
CIX88
Gast
 
Beiträge: n/a
Standard

Wird etwas schwieriger werden, wenn die ganze Sache komplexer wird.
Code:
'~(\([^()]+\)|\(.*?\(.*?\).*?\))~'
 
Alt 19.02.2007, 16:55  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
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

Ich würde wirklich nur Terme auslesen. Deswegen ist deine Ausgangsfrage schon Quatsch. (pi*x) ist ok, aber für (-ln(2)*x) sollte eigentlich erst ln(2) verarbeitet werden und dann der Rest. Anders ist das doch gar nicht machbar. Woher soll der Ausdruck denn wissen, ob die 2 Klammerebenen zusammengehören oder nicht: ln (ln (2))
nikosch ist offline  
Alt 19.02.2007, 19:32  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Was ist ein mathematischer Algorithmus mit RegExp wert, wenn er nur manchmal funktioniert?

Such im Internet mal intensiv nach einem Mathe- oder Term-Parser in PHP.
Du könntest auch das Risiko eingehen, einen Term einfach durch eval() zu jagen.
Wenn du ihn vorher mit den Tokenizer-Funktionen von PHP überprüfst, sollte das sogar ohne große Risiken möglich sein.
Zergling-new ist offline  
Alt 19.02.2007, 20:19  
Erfahrener Benutzer
 
Registriert seit: 05.04.2005
Beiträge: 1.333
Freeaak ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ich will ihn ja gerade NICHT mit eval berechnen lassen sondern durch meine rechnen-methode...
__________________
"Wenn du nicht weißt, was du tust: Machs mit Eleganz!"

(Murphy's Gesetze)
Freeaak 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
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
Gierig/nicht gieriger Regex Papst PHP Tipps 2008 22 02.12.2007 20:15
[gelöst :D ] regex tuts nur einmal pro zeile notyyy PHP Tipps 2008 17 24.09.2007 15:40
Session funktioniert nicht bei session.use_cookies = Off Quagga PHP Tipps 2007 13 13.01.2007 18:27
RegEx für Mail-Adresse (Bitte prüfen!) vollkommenegal PHP Tipps 2006 13 20.11.2006 20:02
RegEx funktioniert -> nur nicht in .htaccess ssm Server, Hosting und Workstations 1 19.07.2006 19:54
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
Nach Einfügugng der Sessions funktioniert mein Program nicht PHP-Fortgeschrittene 1 02.10.2005 06:13
Kontakrformular funktioniert nur zum Teil PHP Tipps 2005-2 12 18.07.2005 11:24
RegEx auf starkes passwort und erlaubte zeichen prüfen GothicFiction PHP-Fortgeschrittene 4 10.04.2005 21:10
Regex für attribute in quelltexten robo47 PHP Tipps 2005 6 27.01.2005 18:29

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
gesetze regex, regex für gesetze, regex klammern, regex prüfen auf mathe gesetze, regex klammern mathematik, regular expressions klammerebenen

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