Regeln für die Zahlenübereinstimmung in beobachteten Wörtern

Wie in der Abbildung unten gezeigt, sind die übereinstimmenden Wörter „Test“, „123“ und „测试“ (was auf vereinfachtem Chinesisch „Test“ bedeutet).

Wenn eine Übereinstimmung erfolgreich ist, wird jede Zahl, die dem übereinstimmenden Wort unmittelbar vorangeht, in das Übereinstimmungsergebnis einbezogen, und dies gilt auch für Unicode-Zeichen.
Zahlen, die dem übereinstimmenden Wort unmittelbar folgen, weisen dieses Verhalten nicht auf;
Dies wirkt sich auch auf die Zahlenübereinstimmung aus, einschließlich Fällen, in denen Zeichenketten ausschließlich aus englischen Buchstaben und Zahlen bestehen. Zum Beispiel kann „Test123“ nur „Test“ abgleichen, aber nicht „123“ oder „Test123“ (sich selbst).

Ich bin vielleicht etwas ahnungslos – welche Art von Abgleichsregel ist das? Könnte mir das jemand erklären? :melting_face:

1 „Gefällt mir“

Scheint ein möglicher Regex-Fehler zu sein, die immer etwas knifflig zu entwirren sind. @zogstrip, vielleicht kannst du dir das mal ansehen, da du in diesem Bereich kürzlich gearbeitet hast (obwohl dies anscheinend schon eine Weile existiert).

Hier ist mein Verständnis…

Wenn wir Wörter überprüfen, müssen 3 Segmente übereinstimmen: führend, das Wort, nachfolgend. Wir haben führend und nachfolgend auf Nicht-Buchstaben-Zeichen gesetzt… dies können Satzzeichen, Leerzeichen ODER Zahlen sein. Die Zahlen sind das, was die Übereinstimmung hier durcheinander bringt. Die Absicht ist, Wörter erfassen zu können, auch wenn sich Satzzeichen oder Ähnliches vor/nach dem Wort befinden.

Der Regex sieht also 123Test, findet Test, schaut davor und findet 3, was als „Nicht-Buchstabe“ übereinstimmt, schaut dann danach und findet das Ende des Wortes. Es stimmt also für 3Test.

Ich glaube, wir müssen in den führenden/nachfolgenden Segmenten auf Nicht-Buchstaben- UND Nicht-Zahlen-Zeichen prüfen, um dies zu vermeiden? Ich bin mir nicht sicher, ob es einen Grund gab, warum wir Zahlen nicht einbezogen haben, oder ob es nur ein Versehen ist.

2 „Gefällt mir“

Vielleicht sollte dieses Thema in die Kategorie Bug verschoben werden?

1 „Gefällt mir“

Das sollte es diesmal wirklich beheben. Wir hatten einige Inkonsistenzen zwischen der Ruby-Version und der JS-Version der verwendeten Regex, aber das ist jetzt nicht mehr nötig.

3 „Gefällt mir“