6.4. Octal Numbers

Problem

You want to find octal numbers in a larger body of text, or check whether a string variable holds an octal number. An octal number is a number that consists of the digits 0 to 7. The number must either have at least one leading zero, or it must be prefixed with 0o.

Solution

Find an octal number in a larger body of text:

\b0[0-7]*\b
Regex options: None
Regex flavors: .NET, Java, JavaScript, PCRE, Perl, Python, Ruby

Check whether a text string holds just an octal number:

\A0[0-7]*\Z
Regex options: None
Regex flavors: .NET, Java, PCRE, Perl, Python, Ruby
^0[0-7]*$
Regex options: None
Regex flavors: .NET, Java, JavaScript, PCRE, Perl, Python

Find an octal number with a 0o prefix:

\b0o[0-7]+\b
Regex options: Case insensitive
Regex flavors: .NET, Java, JavaScript, PCRE, Perl, Python, Ruby

Discussion

These regexes are very similar to the ones in the preceding recipes in this chapter. The only significant difference is that the prefix 0 is also part of the octal number itself. In particular, the digit 0 all by itself is also a valid octal number. So while the solutions for preceding recipes use the plus to repeat the digit ranges one or more times, the first two solutions in this recipe use the asterisk to repeat the digit ranges zero or more times. This way we allow octal numbers of any length, including the number 0.

The third solution uses the plus again, because we require at least one digit after the 0o prefix.

See Also

All the other recipes in this chapter show more ways of matching ...

Get Regular Expressions Cookbook, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.