Как разрешить "*" и число только в Регулярном выражении: 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