1Danke
ERLEDIGT
NEIN
NEIN
ANTWORTEN
8
8
ZUGRIFFE
382
382
EMPFEHLEN
-
Hallo Community,
ich brauch mal einen Tip für mein Problem. Schraube schon eine Weile an einer Funktion welche quasi das String-Pendant zu substring ist. Also nicht einen Teil eines Strings anhand von Positionen ermittelt sondern anhand von Strings!
Quasi: Man gibt den Anfangs-/End-String an und was dazwischen ist wird als Resultat zurückgegeben. Das habe ich nun mit regulären Ausdrücken auch 'soweit' fertig, allerdings möchte ich nicht vom ersten Anfangs-String alles bis zum letzten End-String sondern bis zum ersten End-String. Zum besseren Verständnis hab ich mal den Code mit beigefügt.
PS.: Es gibt zwar eine Lösung dass man erst die Positionen der Strings ermittelt und diese dann wiederum per substring verwertet, aber dann wieder alle Fälle wie...ist der End-String vor dem Anfangs-String...ist überhaupt ein Anfangs-String angegeben...ist überhaupt ein End-String angegeben....u.s.w. abzufragen würde den Code schon etwas 'aufblähen'. Vielleicht kann man ja mit einem einfachen Ansatz beim regulären Ausdruck dies schon erledigen
Gibt entsprechend Karl; und Nachname Koslowski und nicht nur Karl zurück!PHP-Code:function substrBySearch(stringToSearch,returnFromString,returnToString){
var regularExp;
if(typeof(stringToSearch) !='string'){return false;}
if(typeof(returnFromString)!='string'){returnFromString='';}
if(typeof(returnToString) !='string'){returnToString='';}
regularExp=new RegExp(returnFromString+'(.*)'+returnToString,'i');
stringToSearch=stringToSearch.match(regularExp);
if(stringToSearch==false){return false;}
if(stringToSearch[1]!=undefined && typeof(stringToSearch[1])=='string'){
return stringToSearch[1];
}else{
return false;
}
}
alert(substrBySearch('Hier mal ein paar Daten! Also Vorname Karl; und Nachname Koslowski;','Vorname',';'));
Die Kunst Steuern einzunehmen besteht darin, die Gans zu rupfen ohne dass sie schreit.
Maximilen de Béthune, französischer Finanzminister (1560 - 1641)
-
Moin Wessy,
ich befürchte, es gibt in JS keine einfache Lösung dafür, du wirst wohl den umständlichen Weg gehen müssen
-
Hallo Sven, man schade. Mag immer kleine, kompakte Funktionen ohne Schnickschnack! Aber ein Kumpel hat mich grad noch auf eine....immer noch super Lösung gebracht. Einfach per Split mit Begrenzung auf eine Trennung den Anfang splitten (und den 2. Teil nehmen), dann den Rest splitten (und den 1. Teil nehmen). Das müsste funktionieren. Habs noch nicht ausprobieren können aber es sollte meine Lösung sein. Danke dir trotzdem!
Die Kunst Steuern einzunehmen besteht darin, die Gans zu rupfen ohne dass sie schreit.
Maximilen de Béthune, französischer Finanzminister (1560 - 1641)
-
Ich wüsste nicht, dass man in JS bei split() die Anzahl der Trennungen bestimmen kann

Das optimalste wäre halt, wenn du den Inhalt der gesuchten Zeichenkette etwas genauer spezifizieren könntest als .*
-
Hallo,
mit einem faulen Quantor sollte das funktionieren:
Du solltest allerdings zuvor noch returnFromString und returnToString von Regexp-Steuerzeichen befreien. (Beispiel: http://simonwillison.net/2006/Jan/20/escape/).Code javascript:1
regularExp=new RegExp(returnFromString+'(.*?)'+returnToString,'i');
Grüße, Matthias„Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
“For every complex problem, there is an answer that is short, simple and wrong.”
“Pessimism is safe, but optimism is a lot faster!”
Aktuelles Coding Quiz: #17 - Wörter kreuz und quer
-
20.10.09 01:53 #6
Gibt es keine Lookaround-Insertions in JS-Regex?
Code :1
pattern=new RegExp("(?="+returnFromString+")(\w)+(?<="+returnToString+")","i");
mfg chmeeMein Blog - VideoFAQ - FotoFAQ - bei Flickr - DSLR Kleinanzeigen
Benutzt den DANKE-Knopf oder bewertet den Beitrag
"GEHT NICHT" HILFT NICHT, TESTET EURE CODES ONLINE UND GEBT KLARE INFOS!
-> Regexp <- -> php <- -> Javascript <-
-
-
Hallo alle beisammen,
danke für eure Anregungen! Eins verstehe ich aber noch nicht:
@Matthias: Wie genau funktioniert das mit dem 'Quantor' bzw. was ist der Unterschied zwischen mit und ohne?
Ich hab grad nicht die Möglichkeit das zu probieren. Auch gibts in meiner SelfHTML-Doku unter regulären Ausdrücken absolut nix zu "?"...
Wiki meint es gibt mehrere Quantoren, also z.B. Existenz-, Anzahl-, etc. Aber wie funktioniert dass in den Javascript-RegExp's?
PS: Hatte mir schon eine 'escape'-Funktion geschrieben um auch nach Zeichen wie ( ) \ ^ $ * + . ? suchen zu können. Klappt auch! Aber Danke für den Hinweis...
Geändert von Wessy (21.10.09 um 13:19 Uhr)
Die Kunst Steuern einzunehmen besteht darin, die Gans zu rupfen ohne dass sie schreit.
Maximilen de Béthune, französischer Finanzminister (1560 - 1641)
-
21.10.09 13:37 #9
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Hi.Ohne ? sind die Quantifizierer gierig, mit ? sind sie faul (lazy).
Javascript hat die reg. Ausdrücke von Perl übernommen (bis auf einige Ausnahmen), siehe http://de.selfhtml.org/perl/sprache/...erig_genuegsam
GrußIf at first you don't succeed, try again. Then quit. No use being a damn fool about it.
Ähnliche Themen
-
Regulärer Ausdruck Anfang"." $suchbegriff Bis "."
Von R00Ki3 im Forum PHPAntworten: 2Letzter Beitrag: 14.08.06, 18:37 -
Regulärer Ausdruck für "nichts"
Von TVE im Forum Hosting & WebserverAntworten: 6Letzter Beitrag: 16.02.05, 14:15 -
Regulärer Ausdruck für "test ...... \n.\n"
Von mansenpansen im Forum C/C++Antworten: 2Letzter Beitrag: 14.12.04, 21:29 -
regulärer Ausdruck, parsen von \ und "
Von hpvw im Forum PHPAntworten: 1Letzter Beitrag: 23.11.04, 06:27 -
"sed" und Regulärer Ausdruck
Von the-cR im Forum Linux & UnixAntworten: 3Letzter Beitrag: 28.03.04, 19:19





Zitieren


Login





