#regex #windows #ip-address #qregexp #qt5.2
#регулярное выражение #Windows #ip-адрес #qregexp #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-адресов поиска.
т.е. 10.105.*.*
к 10.107.*.*
этому относиться как 10.105.0.0
к 10.107.255.255
Комментарии:
1. используйте
*
, и это будет работать2. Пример:
print re.match("^(0|[1-9]|[1-9][0-9]|1[0-9][0-9]|2([0-4][0-9]|5[0-5])).1[0-9]{1,2}.(*|[0-9]{1,3}).(*|[0-9]{1,3})$","10.105.*.*")
3. Я пробовал так
( "^(*|0|[1-9]|[1-9][0-9]|1[0-9][0-9]|2([0-4][0-9]|5[0-5]))$" )
, но это не сработает.4. Можете ли вы предоставить нам свой полный код? Если вы пытаетесь сопоставить
"^(*|0|[1-9]|[1-9][0-9]|1[0-9][0-9]|2([0-4][0-9]|5[0-5]))$"
с"10.105.*.*"
ним, это не удастся5. Я создал пользовательский IP-адрес, используя QLineEdit и QLabel. Это регулярное выражение предназначено для одного блока IP-адреса. Я использую четыре QLineEdit и три QLabel для создания одного IP-адреса. QLineEdit для получения цифры (ip), затем QLabel для
dot
. (QLineEdit QLabel QLineEdit QLabel вот так)
Ответ №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
Комментарии:
1. Спасибо за ваше внимание …:)