| Title | Test
                    Find
                    
                    Pattern Title | 
            
                | Expression | ^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$ | 
            
                | Description | This matches an IP address, putting each number in its own group that can be retrieved by number. If you do not care about capturing the numbers, then you can make this shorter by putting everything after ^ until immediately after the first \. in a group ( ) with a {3} after it. Then put the number matching regex in once more. 
It only permits numbers in the range 0-255. 
 | 
            
                | Matches | 0.0.0.0 | 255.255.255.02 | 192.168.0.136 | 
            
                | Non-Matches | 256.1.3.4 | 023.44.33.22 | 10.57.98.23. | 
            
                | Author | Rating:  Andrew Polshaw | 
            
                | Source |  | 
            
              | Your Rating |  | 
        
    
 
    
    
     
        
                
	                Title: Got a shortened version working for Linux Bash scripts
	                Name: Thomas
	                Date: 8/9/2019 10:15:54 AM
	                Comment: 
I could not get the regex to work in my bash script, so I had to update it. It is the sortened version that James entered but with \d replaced by []. I also included what Eger had suggested, there can not be a leading 0 in any octet.
^([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\.([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}$
                
                
            
                
	                Title: Your Shortened version is so good you should list it separately
	                Name: James Glenski
	                Date: 1/4/2018 6:42:57 PM
	                Comment: 
I like the shortened version.
^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])(\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])){3}$
Works like a champ.
                
                
            
                
	                Title: Thanks
	                Name: John
	                Date: 7/3/2010 7:12:39 PM
	                Comment: 
Thanks for the regex Andrew and thanks to eger for the updated copy (thanks 5 years later, hehe). :)
                
                
            
                
	                Title: updated version
	                Name: eger
	                Date: 5/6/2005 4:54:07 PM
	                Comment: 
I was having similar problems as sergeya suggested. so i went ahead and modified Andrews a bit to be more strict. This one will not allow 0 as the first octect, 0 in front of any octet number, or multiple 0's:
^([1-9]{1}\d{1}|[1-9]{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1}|[1-9]{1}\d{1}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1}|[1-9]{1}\d{1}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1}|[1-9]{1}\d{1}|1\d\d|2[0-4]\d|25[0-5])$
                
                
            
                
	                Title: prob with this regexp
	                Name: sergeya
	                Date: 6/10/2004 8:21:18 PM
	                Comment: 
allows 01.01.01.01 - does not check for 0 in 2-digit groups
                
                
            
                
	                Title: Shortening?
	                Name: Ri
	                Date: 2/15/2004 3:53:45 AM
	                Comment: 
Could you be so kind as to give a snippet of this shortening you speak of in the description?