Regex, чтобы увидеть, если IP начинается с 156.21.xx - PullRequest
1 голос
/ 19 октября 2011

Я пишу регулярное выражение для аналитики Google, и мне нужно заблокировать любой IP-адрес с 156.21.xx Меня не волнуют последние 2 октета, только первые два.Я хотел бы сохранить регулярное выражение до как можно меньшего числа символов, так как Google допускает только 255 символов, а мое регулярное выражение уже довольно большое.

Ответы [ 3 ]

2 голосов
/ 19 октября 2011

не уверен, какой тип регулярных выражений или какой язык вы используете, но это будет работать на большинстве движков регулярных выражений:

156\.21\.\d{1,3}\.\d{1,3}

Конечно, это будет соответствовать недействительным ip как 156.21.777.888, но если списокваш анализ не содержит недопустимых IP-адресов, тогда вы должны быть в порядке.Или:

156\.21(\.\d{1,3}){2}
2 голосов
/ 19 октября 2011

Если у вас мало свободного места, это будет работать, хотя вы также сопоставляете не IP-адреса.Если вы можете предположить, что Google предоставит вам действительные IP-адреса, это ваш самый короткий вариант:

^156\.21\.

Соответствует следующим вещам: 156.21.1.1 156.21.1000.1000 156.21.ABC

Но не совпадаетhttp://156.21.1.1 ehlo 156.21.1000.1000

1 голос
/ 19 октября 2011

Следующее регулярное выражение будет соответствовать (почти) действительным адресам IPv4, который начинается с 156.21:

(156\.21(?:\.[\d]{1,3}){2})
...