Как разрешить "*" и число только в Регулярном выражении: Qt5.2

Я хочу разрешить * или номер только по моему QLineEdit для IP-адреса.

Мое регулярное выражение:

QRegExp rx ( "^(0|[1-9]|[1-9][0-9]|1[0-9][0-9]|2([0-4][0-9]|5[0-5]))$" );

Что найти для IP AddressТеперь я хочу разрешить * символ для поиска IP Range.

т.е. 10.105.*.* в 10.107.*.*Это рассматривается как 10.105.0.0 в 10.107.255.255

1 ответ

Решение

Попробуй это Regex который соответствует IP-адресу с * и / или между 0-255

Regex reg = new Regex("^((\\*)?|[01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.((\\*)?|[01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.((\\*)?|[01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.((\\*)?|[01]?\\d\\d?|2[0-4]\\d|25[0-5])$");

bool isMatch = reg.IsMatch("*.1.1.255"); //true
isMatch=reg.IsMatch("255.255.255.255"); //true
isMatch=reg.IsMatch("*.*.*.*"); //true
isMatch=reg.IsMatch("0.0.0.0"); //true
isMatch=reg.IsMatch("256.*.*.*);//false
isMatch=reg.IsMatch("2.2.455.*);//false
Другие вопросы по тегам