
11.07.2016, 04:40
|
|
Флудер
Регистрация: 23.03.2013
Сообщений: 2,696
С нами:
6915558
Репутация:
183
|
|
Сообщение от QGate
Никак не получается составить регулярное выражение. Есть строчка либо формата "ip1 ip2", либо просто "ip1". Нужно регулярками понять сколько введено адресов и записать каждое в переменную. Поможете? Вот есть небольшая наработка.
C++:
Код:
std
::
regex
rx
(
"(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})"
)
;
std
::
smatch rx_match
;
std
::
string str
=
"15.14.88.4 127.0.0.1"
;
byte count
=
0
;
// http://stackoverflow.com/questions/6136699/visual-studio-2010-c-tr1-regex-equivalent-of-perl-g-global-modifier
auto
str_it
=
str
.
cbegin
(
)
;
while
(
std
::
regex_search
(
str_it
,
str
.
cend
(
)
,
rx_match
,
rx
)
)
{
// SF->Log("%s", rx_match.str().c_str());
str_it
=
rx_match
[
0
]
.
second
;
count
++
;
}
printf
(
"Found: %d\n"
,
count
)
;
Если хочешь прям точно определить, IP ли это(максимальный диапазон ипа - 255.255.255.255), то можешь найти в интернете, либо помучиться самому. Вообще, составить регулярку для такой задачи будет тяжело, поэтому как-нибудь через строки проверяй.
|
|
|