jjnguy hatte es in einerkorrekt (wenn auch etwas überflüssig).
.*?[^0-9].*
@Chad, Ihre regex,
\b.*[a-zA-Z]+.*\b
wahrscheinlich nicht Buchstaben zulassen sollte (zB Zeichensetzung), obwohl Beispiele der Svish keiner enthielt. Svishs primäre Anforderung war: Nicht alle sind Ziffern.
\b.*[^0-9]+.*\b
Dann brauchen Sie nicht die + dort, da alles, was Sie brauchen, 1 Nicht-Ziffer zu gewährleisten, ist da drin ist (mehr könnte drin sein, wie durch die abgedeckt. * An den Enden).
\b.*[^0-9].*\b
Als Nächstes können Sie mit dem \ b an beiden Enden abschaffen, da diese unnötigen Beschränkungen sind (Referenz Aufruf alphanum und _).
.*[^0-9].*
Schließlich ist zu beachten, dass dieser letzte regex zeigt, dass das Problem nur mit den Grundlagen gelöst werden kann, diese Grundlagen, die seit Jahrzehnten bestanden haben (zB keine Notwendigkeit für die Look-Ahead-Funktion). Im Englischen war die Frage logisch gleichbedeutend mit der einfachen Frage, ob 1 Gegenbeispielzeichen in einer Zeichenkette gefunden wurde.
Wir können diese Regex in einem Browser testen, indem Sie Folgendes in die Adresszeile kopieren und die Zeichenfolge "6576576i7567" durch die Zeichenfolge ersetzen, die Sie testen möchten.
javascript:alert(new String("6576576i7567").match(".*[^0-9].*"));
Das ist im Grunde, was ich mit :) – Svish
So ... im Grunde kam Sie mit einem komplizierten Ausdruck für/\ D /. –
Nun nein \ D ist anders als meins, weil es nur nicht Ziffern entspricht. Mine gibt Übereinstimmungen zurück, die die gesamte Zeichenfolge enthalten, wenn eine Übereinstimmung hergestellt wird, während \ D mehrere Übereinstimmungen pro Zeile sein können. Meine Regex gibt 4 Übereinstimmungen zurück, während \ D 17 zurückgibt (für jede Nicht-Ziffer). –