web-dev-qa-db-fra.com

Les blancs, les espaces et les tabulations font-ils partie d'une chaîne?

Y a-t-il une différence entre un espace et un blanc?

Les tabulations, espaces, blancs sont-ils considérés comme des caractères?

5
FuRinKaZan_001

Il n'y a pas de "blanc" dans ce contexte. Tout ce que vous avez, ce sont des caractères et certains caractères qui n'impriment en fait rien de visible pour vous en texte normal. Cependant, tout est exprimé en termes de caractères, oui. Il y a pas mal de caractères non imprimables en ASCII, vous pouvez trouver une liste complète ici: https://web.itu.edu.tr/sgunduz/courses/mikroisl/ascii.html . Ceux que vous rencontrerez probablement dans les fichiers texte sont les différents caractères d'espacement qui sont:

  • Espace:
  • Onglet: \t
  • Nouvelle ligne: \n
  • Retour chariot: \r

Et, moins fréquemment:

  • Cloche: \a
  • Retour arrière: \b
  • Onglet vertical: \v
  • Flux de formulaire: \f

Vous avez également le NULL (\0) qui n'est pas en cours d'impression mais n'apparaît pas dans les fichiers texte, ainsi que l'échappement spécial (\e ou ^[) et Control-Z (^Z) caractères mais, encore une fois, pas vraiment trouvés dans les fichiers texte.

Liens pertinents


Ainsi, un "blanc" peut être un espace ou une tabulation ou un autre caractère d'espacement. Ou, si vous travaillez avec Unicode et non ASCII, vous avez également diverses autres choses étranges. Mais peu importe ce que vous avez, ce seront des personnages. Lorsque vous voyez des espaces dans le texte, l'ordinateur voit du caractère. Un "blanc" n'est jamais l'absence d'un caractère, c'est toujours la présence d'un caractère non imprimable.

16
terdon

Puisque votre balise indique "Expression régulière", je suppose que vous faites référence aux classes de caractères POSIX [:blank:] et [:space:].

Cet aperç le tableau montre que [:blank:] est un sous-ensemble de [:space:]:

  • [:space:] contient tout ce qui est généralement désigné par "espaces blancs", c'est-à-dire "espace" (le caractère \x20, généré en appuyant sur la barre "espace"), onglet horizontal, onglet vertical, saut de page etc.
  • [:blank:] ne contient que les caractères qui produisent un "espace vide" dans la même ligne, c'est-à-dire "espace" et une tabulation horizontale \t.

Et oui, dans le contexte de la saisie informatique, tous ces éléments sont des caractères et doivent donc également être considérés comme des caractères lors de la conception d'une expression régulière.

Mise à jour Ici est une discussion similaire.

17
AdminBee

OUI, si vous mettez l'accent sur le blanc, alors c'est NULL sinon le blanc et l'espace sont les mêmes. De plus, l'espace, l'espace et les tabulations sont tous les caractères définis par ASCII ou système Unicode. Blank [0x00], espace [0x20], tab [0x09]

1
zen29d

https://en.wikipedia.org/wiki/Whitespace_character

En programmation informatique, un espace est un caractère ou une série de caractères représentant un espace horizontal ou vertical en typographie

Je suppose que vous faites référence à l'utilisation de la ligne de commande:

Dans les commandes traitées par les processeurs de commandes, par exemple dans les scripts et saisies, le caractère espace peut causer des problèmes car il a deux fonctions possibles: en tant que partie d'une commande ou d'un paramètre, ou en tant que paramètre ou séparateur de nom. L'ambiguïté peut être évitée soit en interdisant les espaces intégrés, soit en insérant un nom avec des espaces intégrés entre les guillemets.

Espace comme délimiteur de paramètre:

command arg1 arg2

Espace dans le cadre d'une chaîne (paramètre unique à commander):

command "arg with spaces"
1
Christo