Python | Remove leading zeros from an IP address


Given an IP address, remove leading zeros from the IP address.

Examples:

Input : 100.020.003.400 
Output : 100.20.3.400

Input :001.200.001.004  
Output : 1.200.1.4



Method 1 : Traversal and join

The approach is to split the given string by “.” and then convert it to an integer which removes the leading zeros and then join back them to a string.To convert a string to an integer we can use int(s) and then convert it back to string by str(s) and then join them back by using join function.

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python program to remove leading zeros 
# an IP address and print the IP
  
# function to remove leading zeros
def removeZeros(ip):
      
    # splits the ip by "."
    # converts the words to integeres to remove leading removeZeros 
    # convert back the integer to string and join them back to a string
    new_ip = ".".join([str(int(i)) for i in ip.split(".")])  
    return new_ip ;
      
      
# driver code   
# example1
ip ="100.020.003.400"  
print(removeZeros(ip))
  
  
# example2
ip ="001.200.001.004"
print(removeZeros(ip))

chevron_right


Output:

100.20.3.400
1.200.1.4

Method 2 : Regex

Using a capture group, match the last digit and copy it and prevents all the digits from being replaced.

regex \d can be explained as:

  • \d : Matches any decimal digit
    \d   Matches any decimal digit, this is equivalent
         to the set class [0-9].
  • \b allows you to perform a “whole words only” search using a regular expression in the form of \bword\b
    regex \b can be explained as :

    \b allows you to perform a "whole words only" search u
    sing a regular expression in the form of \bword\b
filter_none

edit
close

play_arrow

link
brightness_4
code

# Python program to remove leading zeros 
# an IP address and print the IP using regex
import re 
  
# function to remove leading zeros
def removeZeros(ip):
    new_ip = re.sub(r'\b0+(\d)', r'\1', ip)
    # splits the ip by "."
    # converts the words to integeres to remove leading removeZeros 
    # convert back the integer to string and join them back to a string
      
    return new_ip 
      
      
# driver code   
# example1
ip ="100.020.003.400"  
print(removeZeros(ip))
  
  
# example2
ip ="001.200.001.004"
print(removeZeros(ip))

chevron_right


Output:

100.20.3.400
1.200.1.4


My Personal Notes arrow_drop_up

Striver(underscore)79 at Codechef and codeforces D

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.