Alle Whitespace-Zeichen? Ist es die Sprache unabhängig?
Ich Frage mich, wenn alle die Sprache behandelt, mit dem gleichen Satz von Zeichen als Leerraum charactes oder gibt es eine Variante.
Kann jeder vollständige Liste der White-space-Zeichen trennt die eine, die über die Tastatur eingegeben worden? Wenn es anders ist, der Unterschied und der Grund wäre eher angebracht. Jede Sprache ist hilfreich, wenn Sie nicht bringen Whitespace
oder seine Varianten(falls vorhanden). Ich sicherlich nicht wollen, eine vollständige Liste für Sprache wie Whitespace
🙂
- Gut, die Sprache hat sicherlich andere whitespace-Zeichen aus anderen Sprachen.
U+1361
ist "ETHIOPIC WORDSPACE", das klingt wie eine Sprache-spezifische Leerstelle.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ob ein bestimmtes Zeichen ist kategorisiert als ein whitespace-Zeichen oder nicht, sollte davon abhängen, die Zeichensatz verwendet wird. Das heißt, es ist nicht unmöglich, dass eine Programmiersprache kann seine eigene definition dafür, was whitespace.
Den meisten modernen Sprachen verwenden den Unicode-Zeichensatz, die hat haben eine definition für Raum Trennzeichen. Jeder Charakter in der
Zs
Kategorie ist eine Leerzeichen als Trennzeichen.Sehen Sie die komplette Liste hier. Darüber hinaus können Sie grep für
;Zs;
im offiziellen Unicode-Zeichen-Datenbank, um zu sehen, diese Zeichen. Beachten Sie, dass die Anzahl der Zeichen in dieser Kategorie können wachsen als neuen Unicode-Versionen kommen in die Existenz, so werde ich nicht sagen, wie viele solche Zeichen vorhanden sind, noch auch Versuch auf der Liste.Zusätzlich zu den Zs Unicode Kategorie, Unicode definiert auch Zeichen Eigenschaften. Unter den Eigenschaften definiert durch die Unicode ist ein Leerzeichen-Eigenschaft. In der Unicode 7.0, Charaktere mit dieser Eigenschaft sind alle Zeichen mit Kategorie-Zs plus ein paar steuerzeichen (einschließlich U+0009, U+000A, U+000B U+000C U+000D und U+0085). Finden Sie alle Zeichen mit Leerzeichen-Eigenschaft bei Unicode.org hier.
Nun viele Sprachen, auch moderne, haben Besondere Symbole für reguläre Ausdrücke wie
\s
oder[:space:]
aber Vorsicht, diese beziehen sich nur auf bestimmte Zeichen aus dem ASCII-Satz; im Allgemeinen sind diese beschränkt aufNun diese Liste ist interessant, denn es enthält nicht nur Leerzeichen Trennzeichen (Zs), sondern auch von der "Kontrolle, Andere" - Kategorie (Cc). Dies ist, was eine Programmiersprache bedeutet in der Regel, wenn es verwendet den Begriff "whitespace."
Also wahrscheinlich der beste Weg, um Ihre Frage zu beantworten, die für eine "vollständige Liste" von whitespace-Zeichen ist zu sagen: "es hängt davon ab, was Sie meinen." Wenn du meinst, "classic whitespace" es ist wahrscheinlich die sechs Zeichen, die oben aufgeführt sind. Wenn Sie etwas mehr "modern" ist, dann ist es die union, von denen sechs mit alle Zeichen aus der Unicode-Kategorie Zs. Dann wieder, Sie möglicherweise brauchen, um sich in andere Blöcke zu verwenden (z.B., U+1361 wie bereits erwähnt, in einem Kommentar auf Ihre Frage von Jerry Sarg). Es hängt auch davon ab, was Sie wollen tun mit diesen Leerzeichen.
Nun noch eine Letzte Sache: Unicode hat nicht jeder Charakter in der Welt dennoch; es wächst. Es ist möglich, dass eines Tages neue Zeichen Hinzugefügt werden. Für jetzt, der Kategorie Zs + der Klassiker sind Ihre beste Wette.
\s
hat immer enthalten, die fünf Zeichen U+0009 bis U+000D, die Unicode-KategorieCc
("Andere-Control"). Also, was sich entwickelte, war ein separater Unicode Kategorien fürZs
undCc
sowie eine Unicode - Eigenschaften, zu vereinheitlichen den Raum-wie steuerzeichen mit den symbolisch-Räume. In meiner Erfahrung gibt es tendenziell bessere Unterstützung für Kategorien als Eigenschaften (z.B. regexes mit\p{}
), aber wer weiß-vielleicht ändert sich das irgendwann?Gibt es derzeit 25 Unicode-whitespace-Zeichen mit folgenden hexadezimal-code Punkte':
Entsprechenden dezimalen Werte sind:
Ich ursprünglich erworben, diese Informationen von Unicode.org aber mein Alter link ist nicht mehr eine funktionierende URL. Wikipedia hat eine nette Seite zu dem Thema tho, an https://en.wikipedia.org/wiki/Whitespace_character wenn alle interessiert sind, das gibt auch 25 Zeichen. (Ich habe nicht mit cross-references, dass diese Zeichen sind die gleichen Zeichen, aber ich vertraue darauf, dass das Unicode-Konsortium nicht geschafft hat solche eine wichtige, große änderung in Ihrem Charakter festgelegt!)
Habe ich eine einfache Seite, auf der unicode-website heute, aber es sieht ein bisschen mehr wie ein Entwurf der html-Seite anstatt etwas zu unterstützen oder zu fordern, eine offizielle Haltung. Aber es muss mit dem übereinstimmen, was Unicode zuvor gepostet als offizieller Behauptung in Bezug auf all das, was Ihre whitespace-Zeichen sind. (Der link ist in meinem Kommentar unter meine Antwort.)
Wenn Sie auf der Suche nach einer effizienten Methode, ich verwende den folgenden code:
0 bis 31 sind steuerzeichen, 32 das LEERZEICHEN und 127 ist die ESC-Zeichen. Dies funktioniert für alle Zeichensätze, die ich kenne, einschließlich UTF-8.