2016-09-05 2 views
0

Dies ist wahrscheinlich dumm einfach, aber ich kann die Lösung für das Leben von mir nicht finden. (Ja, ich habe bereits SO nach Antworten gesucht.) Ich habe den folgenden regulären Ausdruck: /([^0-9.]+)/ und wenn er mit der Zeichenfolge '53624.4sadca4234foobar.234' ausgeführt wird, stimmt er mit 'sadca' überein, aber nicht mit der 'foobar'. Ich möchte, dass es mit jedem Zeichen übereinstimmt, das keine Zahl oder Dezimalstelle ist.Wie kann ich eine Übereinstimmung in einem regulären Ausdruck wiederholen?

Was ist der richtige Weg, dies zu tun?

+1

Nun, das wären zwei separate Übereinstimmungen. Sie haben nicht angegeben, welche Sprache/Regex-Engine Sie verwenden, aber vermutlich bietet es einen Mechanismus, um mehrere Übereinstimmungen zu erhalten. –

+1

Ich stimme für das Schließen dieser Frage als Off-Topic ab, da es sich um eine Frage zur API des Regex-Dienstprogramms handelt und das Tool/die Sprache nicht angegeben wird –

+0

Siehe https://regex101.com/r/eM6jI2/1 –

Antwort

1

Was Sie brauchen, wird normalerweise "Global Matching" genannt. Ich weiß nicht, welche Programmiersprache Sie verwenden, aber die meisten haben unterschiedliche Möglichkeiten, das erste Spiel zurückzugeben und alle Matches zurückzugeben. Wenn Sie uns die Programmiersprache mitteilen, können Sie Ihnen dabei helfen.

+0

Vielen Dank viel! Ich verwende Oracle SQL, in diesem Fall ist es nur die/g-Flagge. Mein Endergebnis ist /([^0-9.])/g und es funktioniert korrekt. Akzeptieren Sie Ihre Antwort. – Zargontapel

Verwandte Themen