Как мы можем получить только результат между source="
and "
(в данном случае: 192.168.10.10:any
) с использованием rexEx?
<rule source="192.168.10.10:any" destination="any:any" protocol="UDP"/>
Я не знаю, как это писать на c++, но регулярное выражение:
<rule source="([^"]*)"
В C++
вы можете использовать
string s = "<rule source=\"192.168.10.10:any\" destination=\"any:any\" protocol=\"UDP\"/>";
const regex r(".*\"(.*)\" destination.*");
smatch sm;
string result;
if (regex_search(s, sm, r))
result = sm[1];
Это даст вам:
result = "192.168.10.10:any"
Полный код и демо-версия доступны здесь: http://coliru.stacked-crooked.com/a/c654bb7cf4f34b93