- Mark as New
- Bookmark Message
- Subscribe to Message
- Mute Message
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Remove leading zeros from IP address using regex
Hello All,
I'm trying to remove leading zeros in IP addresses using rex and mode=sed . the regular expression I'm trying to use for substitution is "\b0+\B" . However, it's not returning the required output.
Example : | rex field=<IP address field> mode=sed "\b0+\B"
I even tried with double back slash. But, no luck. Kindly assist to resolve this issue.
Regards,
Sid
- Mark as New
- Bookmark Message
- Subscribe to Message
- Mute Message
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
try this sed expression instead
...
| rex field=ip mode=sed "s/\b0+([0-9]+)/\1/g"
------------
If this was helpful, some karma would be appreciated.
- Mark as New
- Bookmark Message
- Subscribe to Message
- Mute Message
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

That's not a valid rex sed statement, use this example
| makeresults
| eval ip=split("010.1.2.3,10.013.2.3",",")
| mvexpand ip
| rex field=ip mode=sed "s/\b0+\B//"
- Mark as New
- Bookmark Message
- Subscribe to Message
- Mute Message
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
@bowesmana I'm still not getting the expected result. The regex pattern should remove all leading zeros in each octet. however, in this case, it is just removing the leading zero in whichever octet it finds at first place.
For example:
1) 010.1.2.3 -> it removes zero in 1st octet - > 10.1.2.3
2) 10.001.2.3 -> it removes zero in 2nd octet -> 10.1.2.3
3) 010.001.2.3 -> it removes zero in 1st octet only -> 10.001.2.3
4) 10.001.002.3 -> it removes zero in 2nd octet only -> 10.1.002.3
5) 10.1.2.003 -> it removes zero in 2nd octet only -> 10.1.2.3
Regards,
Sid
- Mark as New
- Bookmark Message
- Subscribe to Message
- Mute Message
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

My bad, it was missing the 'g' (global) flag at the end
| makeresults
| eval ip=split("010.1.2.3,10.013.2.3,010.001.002.003",",")
| mvexpand ip
| rex field=ip mode=sed "s/\b0+\B//g"
