Bedeutet “d” in Regex eine Ziffer?

Lesezeit: 4 Minuten

Bedeutet d in Regex eine Ziffer
Tim

Das habe ich in gefunden 123, d Streichhölzer 1 und 3 aber nicht 2. Ich habe mich gefragt, ob d Entspricht einer Ziffer, die welche Art von Anforderung erfüllt? Ich spreche von Regex im Python-Stil.

Das Plugin für reguläre Ausdrücke in Gedit verwendet Regex im Python-Stil. Ich habe eine Textdatei mit dem Inhalt erstellt

123

Nur 1 und 3 werden von der Regex abgeglichen d; 2 ist nicht.

Im Allgemeinen sind für eine Folge von Ziffernnummern ohne andere Zeichen dazwischen nur die Ziffern ungerader Ordnung Übereinstimmungen und die Ziffern gerader Ordnung nicht. Zum Beispiel im 12345die Streichhölzer sind 1, 3 und 5.

  • d wird passen 1, 2 und 3. Wenn nicht, muss etwas anderes in Ihrem Ausdruck sein. Kannst du deinen vollen Ausdruck zeigen?

    – Alex Aza

    25. Juni 11 um 17:37 Uhr

  • d ist eine Abkürzung für [0-9]also sollte es passen 2. Bitte posten Sie einen vollständigen Testfall (ein Skript, das ausgeführt werden kann und das Ihr Problem demonstriert) und vielleicht können wir herausfinden, was falsch ist.

    – zol

    25. Juni 11 um 17:37 Uhr

  • @delnan: “Ich habe festgestellt, dass in 123 d mit 1 und 3 übereinstimmt, aber nicht mit 2” klingt für mich ziemlich konkret.

    – Bernstein

    25. Juni 11 um 17:41 Uhr

  • @Amber: Verdammt, mir ist das nicht entgangen!

    Benutzer395760

    25. Juni 11 um 17:42 Uhr

  • Okay, ich poste das nicht als Antwort, weil ich es nicht tue wissen, aber ich denke, was los ist, ist, dass gedit sich weigert, unmittelbar nach dem Ende des vorherigen Spiels ein neues Match zu starten – es überspringt ein Zeichen, was auch immer es ist, bevor es erneut versucht, zu matchen. Bitte versuchen Sie es mit dem Abgleich 11111 und 22222.

    – zol

    25. Juni 11 um 18:34 Uhr

1644322087 554 Bedeutet d in Regex eine Ziffer
Kirill Polishchuk

[0-9] ist nicht immer gleichwertig zu d. In python3, [0-9] nur Übereinstimmungen 0123456789 Zeichen, während d Streichhölzer [0-9] und andere Ziffernzeichen, zum Beispiel ostarabische Ziffern ٠١٢٣٤٥٦٧٨٩.

  • Versuchen Sie dies in der REPL: import re, re.match(r'd', '٠١٢٣٤٥٦٧٨٩') zeigt keine Übereinstimmung

    – Nickf

    18. Juli 12 um 10:48 Uhr

  • Verwenden Sie für Persisch und Arabisch in Java- und Javascript-Engines p{Nd}

    – Alireza Fattahi

    16. November 13 um 13:57 Uhr

  • Das ist nicht richtig. Nicht alle Motoren setzen es so um. Onigurum und Onigmo (zB in Ruby verwendet) haben d == [0-9]wenn Sie die Ziffern anderer Skripte wollen, müssen Sie p{digit} verwenden

    – Apeiros

    12. April 14 um 16:53 Uhr

  • +1, aber mmmm … das Tag des OP ist Python und d stimmt nur in Python3 mit Unicode-Ziffern überein. In Python 2.7 ist es immer noch das alte ASCII [0-9]– Es könnte sich lohnen, dies in der Antwort zu klären. 🙂

    – zx81

    16. Juni 14 um 11:02 Uhr

  • @FarazAhmad, wahrscheinlich nicht, Sie müssen alle Zeichen separat angeben

    – Kirill Polishchuk

    28. Dezember 17 um 23:26 Uhr

Bedeutet d in Regex eine Ziffer
Wille

d stimmt mit jeder einzelnen Ziffer in den meisten Regex-Grammatikstilen überein, einschließlich Python.
Regex-Referenz

In Regex im Python-Stil, d passt zu jeder einzelnen Ziffer. Wenn Sie etwas sehen, das dies nicht zu tun scheint, geben Sie bitte das an voll Regex, den Sie verwenden, anstatt nur dieses eine bestimmte Symbol zu beschreiben.

>>> import re
>>> re.match(r'd', '3')
<_sre.SRE_Match object at 0x02155B80>
>>> re.match(r'd', '2')
<_sre.SRE_Match object at 0x02155BB8>
>>> re.match(r'd', '1')
<_sre.SRE_Match object at 0x02155B80>

  • Danke! Mein Regex-Parser ist ein Plugin für reguläre Ausdrücke in gedit. Der gesamte Inhalt ist 123.

    – Tim

    25. Juni 11 um 17:45 Uhr

1644322088 911 Bedeutet d in Regex eine Ziffer
srajan

\d{3} stimmt mit einer beliebigen Folge von drei Ziffern in Java überein.

Dies ist nur eine Vermutung, aber ich denke, Ihr Editor stimmt tatsächlich mit jeder einzelnen Ziffer überein – 1 2 3 – Es werden jedoch nur ungerade Übereinstimmungen hervorgehoben, um sie von dem Fall zu unterscheiden, in dem das Ganze angezeigt wird 123 Zeichenfolge passt.

Die meisten Regex-Konsolen heben zusammenhängende Übereinstimmungen mit unterschiedlichen Farben hervor, aber aufgrund der Plugin-Einstellungen, Terminalbeschränkungen oder aus anderen Gründen wird in Ihrem Fall möglicherweise nur jede andere Gruppe hervorgehoben.

1644322088 449 Bedeutet d in Regex eine Ziffer
juFo

Infos zu .NET / C#:

Dezimalziffernzeichen: d d entspricht jeder Dezimalziffer. Es entspricht dem regulären p{Nd}-Ausdrucksmuster, das die Standard-Dezimalziffern 0-9 sowie die Dezimalziffern einer Reihe anderer Zeichensätze enthält.

Wenn ECMAScript-konformes Verhalten angegeben ist, ist d äquivalent zu [0-9]. Informationen zu regulären ECMAScript-Ausdrücken finden Sie im Abschnitt „ECMAScript-Übereinstimmungsverhalten“ unter Optionen für reguläre Ausdrücke.

Die Info: https://docs.microsoft.com/en-us/dotnet/standard/base-types/character-classes-in-regular-expressions#decimal-digit-character-d

.

822450cookie-checkBedeutet “d” in Regex eine Ziffer?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy