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
.
Find an octal number in a larger body of text:
0[0-7]*
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]*
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:
0o[0-7]+
Regex options: Case insensitive |
Regex flavors: .NET, Java, JavaScript, PCRE, Perl, Python, Ruby |
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.
All the other recipes in this chapter show more ways of matching different kinds of numbers with a regular expression.
Techniques used in the regular expressions in this recipe are discussed in Chapter 2. Recipe 2.3 explains character classes. Recipe 2.6 explains word boundaries. Recipe 2.5 explains anchors. Recipe 2.12 explains repetition.