Die Verwendung von EVAL und REGEX in iMacros zum EXTRAHIEREN von Zeichen
Sagen wir, ich habe:
SET !EXTRACT "this is a Make of the car"
Wenn ich:
SET !VAR1 EVAL("var s=\"{{!EXTRACT}}\"; s.match(\"Make\"); ")
dann bekomme ich eine Aufforderung "Machen". Nun, sagen wir, ich interessiere mich für den Ausdruck " Machen ". Nach der online-tester (http://www.regexr.com/), regex wäre:
(?<=this is)(.*)(?=car)
Aber der folgende code funktioniert nicht:
SET !VAR1 EVAL("var s=\"{{!EXTRACT}}\"; s.match(\"(?<=this is)(.*)(?=car)\"); ")
Bekomme ich die folgende Fehlermeldung:
SyntaxError: invalid Quantifizierer, Linie 16 (- Fehler-code: -1001)
Warum?
EDIT: Anscheinend, mit anderen online-tester (http://www.pagecolumn.com/tool/regtest.htm), regex sollte:
(?![this is])(.*)(?=car)
Jedoch, durch die Nutzung dieser:
SET !VAR2 EVAL("var s=\"{{!EXTRACT}}\"; s.match(\"(?![this is])(.*)(?=car)\"); ")
Bekomme ich
einer Machen der ,Stellen der
Irgendwelche Ideen?
Ich bin nicht gut in regex, aber das ist eine interessante Frage. Ich Frage für regex-Lösungen auf stackoverflow chat. Kanal Von JavaScript.
iMacros hat built-in-Funktion 'SUCHEN' für diesen Zweck: wiki.imacros.net/SEARCH
iMacros hat built-in-Funktion 'SUCHEN' für diesen Zweck: wiki.imacros.net/SEARCH
InformationsquelleAutor YetAnotherUser | 2014-03-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich hatte vor kurzem das gleiche Problem und bin auf diese Frage, wenn Sie versuchen, um herauszufinden, was Los war. Hat mich einige Zeit, um herauszufinden, was Los war. Verzeihen Sie mir, wenn ich nicht mit der richtigen Terminologie.
Lassen Sie mich zu Ihrer letzten Beispiel zu erklären, was passiert.
Dem Grund, dass Sie immer die Ausgabe:
ist, weil die Klammer im regex ist die Speicherung der entsprechenden Daten in einem separaten array in der "s" - variable, die ist, was kommt nach dem Komma. Durch die Angabe der array, der die Daten enthält, die Sie wollen "s" - Ausgang, können Sie die Ausgabe, die du suchst.
Zum Beispiel, wenn Sie wollten:
als die gewünschte Ausgabe, verwenden
Beachten Sie die "s[0]" zum Ende dieser Linie. Die [0] - array übersetzt "alles ist aufeinander abgestimmt", wobei [1] "alles ist abgestimmt in die (erste) Klammer". Frag mich nicht warum, es funktioniert wie folgt. Ich kam über den folgenden thread im forum hingewiesen, dass mich in die richtige Richtung.
http://forum.imacros.net/viewtopic.php?f=7&t=18938
Da stieß ich auf diese Frage vor, forum-post, ich dachte, ich würde teilen, was ich herausgefunden habe, hier im Fall, jemand läuft in der gleichen situation.
InformationsquelleAutor Chris Olin