Ich möchte den Text nach der angegebenen Zeichenfolge abgleichen. In diesem Fall der Text für Zeilen, die mit "BookTitle" aber vor dem ersten Leerzeichen beginnen:
%Vor%Gewünschte Ausgabe ist:
%Vor% Ich habe versucht: "^BookTitle(.*)"
, aber es gibt mir Matches, wo BookTitle: in der Mitte der Zeile ist, und auch all die Sachen nach Leerraum. Wer hilft?
Sie können positive lookbehind
in Ihrem Muster haben.
Weitere Informationen: Lookahead und Lookbehind Zero-Width Assertions
Welche Sprache ist das?
Und stellen Sie bitte etwas Code zur Verfügung; Mit dem ^
Anker sollten Sie definitiv nur mit der Zeichenfolge übereinstimmen, die begin mit BookTitle beginnt, damit etwas anderes nicht stimmt.
Wenn Sie sicherstellen können, dass alle Leerzeichen wie in Ihren Beispielen aus den Titeln entfernt werden, sollte ^BookTitle:(\S+)
in vielen Sprachen funktionieren.
Erklärung:
^
erfordert, dass die Übereinstimmung am Anfang der Zeichenfolge beginnt, wie Sie wissen.
\s
- * low * case bedeutet: Übereinstimmung mit Weiß * s * pace (Leerzeichen, Tab usw.) .)
\S
- * oberer * case bedeutet die inverse: passt auf irgendwas ABER whitespace.
\w
ist eine andere Möglichkeit: passt auf * w * ord Zeichen (alphanumerisch plus Unterstrich) - aber das wird scheitern Wenn zum Beispiel ein Apostroph im Titel steht.
+
, wie Sie wissen, ist ein Quantifizierer, der "mindestens eine von" bedeutet.
Hoffe das hilft.
Tags und Links regex