2010-05-03 5 views
2

J'écris une application simple en C++/Qt. Et j'ai un texte et un nombre octal dedans. Mon application divise ce texte par des espaces. Et j'ai besoin de vérifier les nombres octaux à partir du texte. Comment puis-je sélectionner des nombres octaux à partir de ce texte avec des expressions régulières?Vérifiez le nombre octal

Merci.

+0

Dans quel format est votre texte? Quel est le séparateur entre vos numéros? Pouvez-vous poster quelques lignes à titre d'exemple? –

+0

exemple: x: = 123; a = 167; Tous les nombres sont en octal. – 0xAX

Répondre

3

Vous pouvez utiliser les expressions régulières suivantes pour correspondre les nombres octaux:

^0[1-7][0-7]*$ 
  • ^,$: Ancres
  • 0: Un 0 littéral. Tous les nombres octaux commencent par 0.
  • [1-7]: Classe Char pour les chiffres de 1 à 7 car seuls ces chiffres sont octaux valides.
  • *: Quantifier pour zéro ou plus de la chose précédente.

Donc, fondamentalement, ce regex correspond uniquement aux chaînes qui ont un 0 au début et contiennent un ou plusieurs chiffres de 1 à 7.

Si la principale exigence 0 n'est pas là, vous pouvez utiliser les expressions régulières:

^[1-7][0-7]*$ 
+2

ou plus simple^0 [0-7] + $ +: est quantificateur pour une ou plusieurs fois Mais il faudra aussi attraper 00 comme nombre octal valide – VestniK

+0

@Vestnik: Cela permet des nombres comme '007'. Je voulais éviter les zéros en tête de>> 1. – codaddict

+1

La question ne mentionne pas d'éviter plus d'un zéro, et '007' est un nombre octal parfaitement valide. –

Questions connexes