Regular expressions library
Here I compile some of the regular expressions I made and think might be useful later on. I will update this page sometimes if I come up with others.
IPv4
This regular expression will match valid IPv4 addresses: it checks that bytes are in the [0-255] range and allows leading zeroes.
0*(?:2(?:5[0-5]|[0-4][0-9])|1?[0-9]{1,2})\.0*(?:2(?:5[0-5]|[0-4][0-9])|1?[0-9]{1,2})\.0*(?:2(?:5[0-5]|[0-4][0-9])|1?[0-9]{1,2})\.0*(?:2(?:5[0-5]|[0-4][0-9])|1?[0-9]{1,2})
IPv6
This expression will match valid IPv6 addresses, with support for empty group substitution and groups with fewer than four characters.
(?:2(?:5[0-5]|[0-4][0-9])|[01]?[0-9]{1,2})(?:\.(?:2(?:5[0-5]|[0-4][0-9])|[01]?[0-9]{1,2})){3}|[0-9A-Fa-f]{1,4}(?::[0-9A-Fa-f]{1,4}){7}|:(?:(?::[0-9A-Fa-f]{1,4}){1,7}|:)|[0-9A-Fa-f]{1,4}:(?:(?::[0-9A-Fa-f]{1,4}){1,6}|:)|[0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}:(?:(?::[0-9A-Fa-f]{1,4}){1,5}|:)|[0-9A-Fa-f]{1,4}(?::[0-9A-Fa-f]{1,4}){2}:(?:(?::[0-9A-Fa-f]{1,4}){1,4}|:)|[0-9A-Fa-f]{1,4}(?::[0-9A-Fa-f]{1,4}){3}:(?:(?::[0-9A-Fa-f]{1,4}){1,3}|:)|[0-9A-Fa-f]{1,4}(?::[0-9A-Fa-f]{1,4}){4}:(?:(?::[0-9A-Fa-f]{1,4}){1,2}|:)|[0-9A-Fa-f]{1,4}(?::[0-9A-Fa-f]{1,4}){5}:(?::[0-9A-Fa-f]{1,4}|:)
S3 Object URI
This expression will match an AWS S3 object URI. The s3://
part is optional. The capturing groups will match, in order, the bucket name without s3://
or trailing slash, and the key without leading slash.
^(?:s3:\/\/)?((?![^\/]{1,61}\.\.[^\/]{1,61})[a-z.-]{3,63})(?:\/(.{0,1024}))?$
This variant makes the leading s3://
mandatory.
^s3:\/\/((?![^\/]{1,61}\.\.[^\/]{1,61})[a-z.-]{3,63})(?:\/(.{0,1024}))?$