Wie kann ein regulärer Ausdruck in anki ersetzt werden?

634
acman123

Ich muss in allen Karten mit folgenden Einstellungen suchen und ersetzen:

Als Beispiel möchte ich finden:

<span style="color: rgb(255, 255, 255)">Word</span> 

und ändern Sie es in

Word 

Mit anderen Worten, ich möchte diesen Text abstreifen Word.

Aber das Problem ist, ich habe auch andere Wörter.

<span style="color: rgb(255, 255, 255)">One</span> <span style="color: rgb(255, 255, 255)">Two</span> <span style="color: rgb(255, 255, 255)">Three</span> 

zu

One Two Three 

Ich möchte sie alle in das Wort zwischen diesen Tags ändern. Wie kann ich das Suchen und Ersetzen des Anki verwenden, um dieses Ergebnis durch die Bereitstellung eines regulären Ausdrucks zu erzielen? Was ist der korrekte reguläre Ausdruck, um dieses Ergebnis zu erzielen?

enter image description here

0
Was hast du versucht? Ich habe gelesen, dass Anki die Python-Variante von Regex verwendet, also sollte es ziemlich unkompliziert sein. Es gibt sogar ein Beispiel im Online-Handbuch von Anki, das ich gefunden habe und dem sehr nahe kommt, was Sie wollen. Es dauerte weniger als eine Minute, um zu finden. Ron Rosenfeld vor 5 Jahren 0
Bitte geben Sie nur ein Muster an, das funktioniert acman123 vor 5 Jahren 0

1 Antwort auf die Frage

0
wlod

Die Antwort scheint einfach zu sein, aber wenn ein gültiger Regex in "Suchen und Ersetzen" angewendet wird, funktioniert er einfach nicht.
Die Dokumentation https://apps.ankiweb.net/docs/manual.html#find-and-replace ist überhaupt nicht hilfreich und sogar irreführend, da sie ein Beispiel zeigt, das bei der Anwendung nicht funktioniert.
Ich kann nur davon ausgehen, dass es in einigen der vorherigen Versionen funktioniert hat, aber unbeabsichtigt kaputt war.

Schauen wir uns einige Versuche mit dem Fenster "Suchen und Ersetzen" an. Ich verwende die folgenden Einstellungen. Beobachtung 1 Eingabe: < Suchen: < Ersetzen durch: Ausgabe: < Zusammenfassung: Nichts ist passiert. Das Muster ist gültig, aber es hat nicht wie erwartet funktioniert. Beobachtung 2 Eingabe: <










Suche: ^.
Ersetzen durch:
Ausgabe: lt;

Zusammenfassung: lt; erinnert an html-Entität &lt;Nun wissen wir, dass die Regex-Engine funktioniert, aber anscheinend werden die Zeichen anders gespeichert, als sie aussehen.

Anki speichert Sammlungen in der collection.anki2-Datei, die eine sqlite-Datenbankdatei ist. Wir öffnen es im DB Browser für SQLite und suchen den Datensatz mit:
<span style="color: rgb(255, 255, 255)">One</span>
<span style="color: rgb(255, 255, 255)">Two</span>
<span style="color: rgb(255, 255, 255)">Three</span>

Column sfld:
<span style="color: rgb(255, 255, 255)">One<span><span style="color: rgb(255, 255, 255)">Two<span><span style="color: rgb(255, 255, 255)">Three<span>

Column Flds:
<div>&lt;span style="color: rgb(255, 255, 255)"&gt;One&lt;span&gt;</div><div>&lt;span style="color: rgb(255, 255, 255)"&gt;Two&lt;span&gt;</div><div>&lt;span style="color: rgb(255, 255, 255)"&gt;Three&lt;span&gt;</div><div>&lt;span style="color: rgb(255, 255, 255)"&gt;One&lt;span&gt;</div><div>&lt;span style="color: rgb(255, 255, 255)"&gt;Two&lt;span&gt;</div><div>&lt;span style="color: rgb(255, 255, 255)"&gt;Three&lt;span&gt;</div>

Offensichtlich wirkt Regex auf die Flds-Spalte.

Versuchen wir es mit diesem Regex: Vor der Änderung: Nach der Änderung: Das Muster selbst kann verkürzt werden, aber hier habe ich mich hauptsächlich darauf konzentriert, wie es überhaupt funktionieren kann.








Könnten Sie bitte die Regex, die Sie als kopierfähigen Text verwendet haben, hier einfügen? acman123 vor 5 Jahren 0
Jede dieser Optionen sollte funktionieren: (1) `<span style = \" color: rgb \ (255, 255, 255 \) \ "> (. *?) </ Span>` (2) `<span. *? \> (. *?) </ span> `(3)` (? <=
) <span. *? \> (. *?) </ span> (? =
) `Denken Sie daran, \ 1 in Ersetzen mit zu setzen. wlod vor 5 Jahren 0