Regex for find All ip address except IP address starts with 172

 ̄綄美尐妖づ 提交于 2020-01-22 00:22:25

问题


I want regex to find IP address which not starts with 172.0.0.0.

I have written some regex ^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$ which finds all ip address.


回答1:


. in a regex is character that matches everything. To use it in this context, you must escape it.

Also to limit it to just ip addresses that start with 172, simply hardcode it into your regex like so:

^172\.\d{1,3}\.\d{1,3}.\d{1,3}$

Debuggex Demo

You could then use this to filter out any matches already made.


Alternatively, if you're not starting with a list of ip addresses, you could use a negative look-ahead to grab them all straight away.

^(?!172)\d{1,3}\.\d{1,3}\.\d{1,3}.\d{1,3}$

Debuggex Demo


Be a little careful in that this may match more than ip addresses - for example 400.660.226.602 would be captured - even though real IP4 addresses do not contain numbers higher than 255. Perhaps this won't affect your use case - but it's something to remember.


As per the comments below, if you are searching for IP addresses anywhere in the document, rather than on their own line, use \b instead of ^ and $

\b(?!172)\d{1,3}\.\d{1,3}\.\d{1,3}.\d{1,3}\b

Debuggex Demo

This would match log formats for example, which contain an ip address within the message rather than on it's own line.

[10:01:22] Connection from 10.14.242.211 established.




回答2:


Use a negative lookahead if you're looking for addresses in the wild:

\b((?!172)\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\b

See a demo on regex101.com.




回答3:


Try this:

^172\.(?:\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){2}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b|null)$

It not only check ip address start with 172 but it also check for valid ip - address i.e each value can not be more than 255

Live demo is here https://regex101.com/r/lA1gA4/1



来源:https://stackoverflow.com/questions/39524637/regex-for-find-all-ip-address-except-ip-address-starts-with-172

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!