Прежде всего, посмотрите на это: https://www.regular -expressions.info / ip.html
Regex не является инструментом для этой задачи, потому что для строгой проверки вам нужен сложный regexpэто не читается.Прочтите также это: Проверка адресов IPv4 с помощью регулярного выражения .Строгое регулярное выражение выглядит слишком сложным.Примените простое регулярное выражение, если это возможно, например:
where IP rlike '^10\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}$'
Или, если вам нужна строгая проверка, тогда разделите IP-адрес на .
и проверьте каждый октет для диапазона, как это, будет выглядеть проще, чем строго регулярное выражение (непроверено):
select department, ip
from
(
select department, ip, split(ip, '\\.') i
from your_table t
)s where i[0]=10
and (i[1] between 0 and 255 )
and (i[2] between 0 and 255 )
and (i[3] between 0 and 255 );
В python вы можете применить более элегантное решение и проверить маску / префикс сети следующим образом: check-if-ipv4-address-in-network-python