2017-04-21 2 views
-3

Der String:ich brauche eine Regex die Attribute der folgenden Zeichenkette übereinstimmen

{title id="fsfdsfsdf" link1="http://google.com" link1_title="Some link"} 

Was Attributwerte Ich brauche:

fsfdsfsdf, http://google.com, Some link 

ich sie wahrscheinlich bei der Erfassung von Gruppen brauchen würde ()

Reguläre Ausdrücke sind wirklich mein Schwachpunkt, also danke an alle, die einen Weg vorschlagen, oder eine weitere Ressource, die mir helfen könnte, dies zu lösen.

+3

Bitte teilen Sie den Code versucht. –

+0

... und einige korrekte Daten. Ist das eine Schnur? –

+0

Aufgrund des Formats dieser Website würden Sie wahrscheinlich am besten durch Online-RegEx-Tutorials arbeiten und die [RegEx-Dokumentation] (http://stackoverflow.com/documentation/regex/topics) hier auf StackOverflow lesen. –

Antwort

0

Man könnte so etwas tun:

(\w+)(?==) 

Live Demo

bearbeiten

Da es die Attributwerte und nicht die Tasten moechten. Dann könnten Sie so etwas wie:

="((?:\\"|[^"])*?)" 

Live Demo

var input = "{title id=\"fsfdsfsdf\" link1=\"http://google.com\" link1_title=\"Some link\"}"; 
 

 
const re = /="((?:\\"|[^"])*?)"/g; 
 

 
match = re.exec(input); 
 

 
while (match != null) { 
 
    console.log(match[1]); 
 
    match = re.exec(input); 
 
}

Welche Ausgänge:

fsfdsfsdf 
http://google.com 
Some link 
+0

Vielen Dank sehr viel für die Antwort. Leider war ich in meiner Frage vielleicht nicht klar genug, ich brauche das Attribut "Werte" und nicht die Attributnamen selbst. Irgendeine Idee? – Zota

+0

@Zota werfen Sie einen Blick auf meine Bearbeitung. – Vallentin

+0

Das war wirklich ein guter Ausgangspunkt, um meinen eigenen 100% funktionierenden Regex zu erstellen: '^ \ {title id =" ((?: \\ "| [^"]) *?) "\ Slink1 =" ((? : \\ "| [^"]) *?) "\ slink1_title =" ((?: \\ "| [^"]) *?) "[\ s^\}] $'. Ich musste eigentlich die ganze Saite anpassen und dann den Attr. Werte – Zota

Verwandte Themen