
Ich schreibe eine Arbeit mit Regex-Ausdrücken
habe den regulären Ausdruck „(?<=|)\d*/\d*/\d*“ verwendet, um Berichtsdaten zu finden.
Ich habe versucht, vor jedem Zeichen im Regex-Ausdruck Backspash zu verwenden, aber das funktioniert nicht
Ich habe versucht, den regulären Ausdruck mit $$ zu umschließen, aber es funktioniert immer noch nicht
wie es geht?
Antwort1
Regex verwendet viele verschiedene Zeichen, daher ist es schwierig, sie richtig einzugeben. Wenn Sie ein Zeichen finden, das Sie nicht verwenden, können Sie verwenden, \verb
was funktioniert, indem Sie ein Trennzeichen auswählen und dann den Code dazwischen setzen. Wenn Sie also das Pipe-Zeichen nicht benötigen, können Sie dies tun \verb|[0-9A-Fa-F]|
und es wird nur angezeigt [0-9A-Fa-f]
. Aber wie in Ihrem Beispiel zu sehen ist, wird das Pipe-Zeichen häufig verwendet, daher müssen Sie etwas anderes auswählen. Vielleicht ein Ausrufezeichen. Dann \verb!(?<=|)\d*/\d*/\d*!
würde also angezeigt als (?<=|)\d*/\d*/\d*
. Sie müssen herausfinden, was in jedem Fall funktioniert.
Wie der Kommentator erwähnt hat, gibt es auch ein Paket namens „Listings“, das robuster ist, aber für Inline-Code wie in Ihrem Beispiel nicht besonders gut funktioniert.
Antwort2
Wenn Sie es sowieso verwenden biblatex
, können Sie den entsprechenden Befehl auch \regexp{}
als sofort einsatzbereite Lösung verwenden.
Von demBiblatex-Dokumente
Perl-Escape-Sequenzen wie \t für einen Tabulator, \n für eine neue Zeile, \A für den Beginn einer Zeichenfolge oder \d für eine Ziffer können verwendet werden, ohne dass TEX versucht, sie als Befehle auszuführen, ebenso wie Sonderzeichen wie ^, _ oder {..} und #. Nur das % muss geschützt werden: Um ein einzelnes % in der Bib abzugleichen, verwenden Sie % im regulären Ausdruck, ein % wird durch \% abgeglichen.