tags:

views:

97

answers:

1

Hello,

I write simple application in C++/Qt. And i have a text and some octal number in it. My app splits this text by spaces. And i need to check octal numbers from text. How can i select octal numbers from this text with regular expressions?

Thank you.

+4  A: 

You can use the following regex to match only octal numbers:

^0[1-7][0-7]*$
  • ^,$: Anchors
  • 0: A literal 0. All octal numbers begin with a 0.
  • [1-7]: Char class for digits from 1 to 7 as only these are valid octal digits.
  • * : Quantifier for zero or more of the previous thing.

So basically this regex matches only those strings that have a 0 in the beginning and contain one or more digits from 1 to 7.

If the leading 0 requirement is not there you can use the regex:

^[1-7][0-7]*$
codaddict
or simplier ^0[0-7]+$+: is quantifier for one or more timesBut it will also catch 00 as valid octal number
VestniK
@Vestnik: This allows numbers like `007`. I wanted to avoid `>1` leading zeros.
codaddict