Ich arbeite an einem Syntax-Highlighter in Ruby. Aus diesem Eingabestring (pro Zeile verarbeitet):Wie kann ich Strings in Anführungszeichen auswählen, die außerhalb von HTML-Tags liegen?
"left"<div class="wer">"test"</div>"right"
var car = ['Toyota', 'Honda']
Wie kann ich "left"
und "right"
in der ersten Zeile, 'Toyota'
und 'Honda'
in der zweiten Zeile finden?
Ich habe (["'])(\\\1|[^\1]*?)\1
, um die zitierten Strings zu markieren. Ich kämpfe mit dem negativen Blick hinter einen Teil der Regex.
Ich habe versucht, eine andere Regex (?![^<]*>|[^<>]*<\/)
anhängen, aber ich kann es nicht mit String in Anführungszeichen arbeiten. Es funktioniert nur mit einfachen alphanumerischen Zeichen.
Können Sie klären, was Ihre Eingabezeichenfolge ist? –
Die Frage wurde aktualisiert. –
Wenn Sie einen HTML-Parser verwenden können, wenn Sie nicht wissen, dass Regex in bestimmten Fällen nicht ordnungsgemäß funktionieren kann. Probieren Sie ['<[^<>] *> | (" [^ "\\] * (?: \\. [^" \\] *) * "| '[^' \\] * (?: \\. [^ '\\] *) *') '] (http://rubular.com/r/MvmWNRnmtI) und erhalte die erste Erfassungsgruppe. Wenn Sie den Inhalt in Anführungszeichen setzen müssen, versuchen Sie ['<[^<>] *> | (?:" (?