7.16. Matching IPv4 Addresses
Problem
You want to check whether a certain string represents a valid IPv4 address in 255.255.255.255 notation. Optionally, you want to convert this address into a 32-bit integer.
Solution
Regular expression
Simple regex to check for an IP address:
^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$
Regex options: None |
Regex flavors: .NET, Java, JavaScript, PCRE, Perl, Python, Ruby |
Accurate regex to check for an IP address:
^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}↵ (?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$
Regex options: None |
Regex flavors: .NET, Java, JavaScript, PCRE, Perl, Python, Ruby |
Simple regex to extract IP addresses from longer text:
\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b
Regex options: None |
Regex flavors: .NET, Java, JavaScript, PCRE, Perl, Python, Ruby |
Accurate regex to extract IP addresses from longer text:
\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}↵ (?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b
Regex options: None |
Regex flavors: .NET, Java, JavaScript, PCRE, Perl, Python, Ruby |
Simple regex that captures the four parts of the IP address:
^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$
Regex options: None |
Regex flavors: .NET, Java, JavaScript, PCRE, Perl, Python, Ruby |
Accurate regex that captures the four parts of the IP address:
^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.↵ (25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.↵ (25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.↵ (25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$
Regex options: None |
Regex flavors: .NET, Java, JavaScript, PCRE, Perl, Python, ... |
Get Regular Expressions Cookbook 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.