## With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

No credit card required

# 2.12. Repeat Part of the Regex a Certain Number of Times

## Problem

Create regular expressions that match the following kinds of numbers:

• A googol (a decimal number with 100 digits).

• A 32-bit hexadecimal number with an optional `h` suffix.

• A floating-point number with an optional integer part, a mandatory fractional part, and an optional exponent. Each part allows any number of digits.

## Solution

### Googol

`\b\d{100}\b`
 Regex options: None Regex flavors: .NET, Java, JavaScript, PCRE, Perl, Python, Ruby

`\b[a-z0-9]{1,8}\b`
 Regex options: Case insensitive Regex flavors: .NET, Java, JavaScript, PCRE, Perl, Python, Ruby

`\b[a-z0-9]{1,8}h?\b`
 Regex options: Case insensitive Regex flavors: .NET, Java, JavaScript, PCRE, Perl, Python, Ruby

### Floating-point number

`\d*\.\d+(e\d+)?`
 Regex options: Case insensitive Regex flavors: .NET, Java, JavaScript, PCRE, Perl, Python, Ruby

## Discussion

### Fixed repetition

The quantifier `{n}`, where `n` is a positive number, repeats the preceding regex token `n` number of times. The `\d{100}` in `\b\d{100}\b` matches a string of 100 digits. You could achieve the same by typing `\d` 100 times.

`{1}` repeats the preceding token once, as it would without any quantifier. `ab{1}c` is the same regex as `abc`.

`{0}` repeats the preceding token zero times, essentially deleting it from the regular expression. `ab{0}c` is the same regex as `ac`.

### Variable repetition

For variable repetition, we use the quantifier `{n,m}`, where `n` is a positive number and ...

## With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

No credit card required