#include <iostream>
#include <regex>
using namespace std;
int main() {
// your code goes here
std::string channel {"adapters/10:05:06:07:08:02/devices/30:00:00:00:00:04"};
std::smatch base_match;
const std::regex macPattern_d("adapters\\/(([A-Fa-f0-9]{2}[:]){5}([A-Fa-f0-9]{2}))\\/devices\\/(([A-Fa-f0-9]{2}[:]){5}([A-Fa-f0-9]{2}))");
if(std::regex_match(channel, base_match, macPattern_d)) {
// Extracted MAC address is valid
for(auto& m : base_match)
{
std::cout << m << std::endl;
}
}
else
{
const std::regex macPattern_a("adapters\\/(([A-Fa-f0-9]{2}[:]){5}([A-Fa-f0-9]{2}))");
if(std::regex_match(channel, base_match, macPattern_a)) {
// Extracted MAC address is valid
for(auto& m : base_match)
{
std::cout << m << std::endl;
}
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8cmVnZXg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCXN0ZDo6c3RyaW5nIGNoYW5uZWwgeyJhZGFwdGVycy8xMDowNTowNjowNzowODowMi9kZXZpY2VzLzMwOjAwOjAwOjAwOjAwOjA0In07CiAgICBzdGQ6OnNtYXRjaCBiYXNlX21hdGNoOwogICAgY29uc3Qgc3RkOjpyZWdleCBtYWNQYXR0ZXJuX2QoImFkYXB0ZXJzXFwvKChbQS1GYS1mMC05XXsyfVs6XSl7NX0oW0EtRmEtZjAtOV17Mn0pKVxcL2RldmljZXNcXC8oKFtBLUZhLWYwLTldezJ9WzpdKXs1fShbQS1GYS1mMC05XXsyfSkpIik7CiAgICBpZihzdGQ6OnJlZ2V4X21hdGNoKGNoYW5uZWwsIGJhc2VfbWF0Y2gsIG1hY1BhdHRlcm5fZCkpIHsKICAgICAgICAvLyBFeHRyYWN0ZWQgTUFDIGFkZHJlc3MgaXMgdmFsaWQKCQlmb3IoYXV0byYgbSA6IGJhc2VfbWF0Y2gpCgkJewoJCQlzdGQ6OmNvdXQgPDwgbSA8PCBzdGQ6OmVuZGw7CgkJfQogICAgfSAKICAgIGVsc2UKICAgIHsKICAgIAljb25zdCBzdGQ6OnJlZ2V4IG1hY1BhdHRlcm5fYSgiYWRhcHRlcnNcXC8oKFtBLUZhLWYwLTldezJ9WzpdKXs1fShbQS1GYS1mMC05XXsyfSkpIik7CiAgICAJaWYoc3RkOjpyZWdleF9tYXRjaChjaGFubmVsLCBiYXNlX21hdGNoLCBtYWNQYXR0ZXJuX2EpKSB7CgkgICAgICAgIC8vIEV4dHJhY3RlZCBNQUMgYWRkcmVzcyBpcyB2YWxpZAoJCQlmb3IoYXV0byYgbSA6IGJhc2VfbWF0Y2gpCgkJCXsKCQkJCXN0ZDo6Y291dCA8PCBtIDw8IHN0ZDo6ZW5kbDsKCQkJfQogICAgCX0KICAgIH0gCglyZXR1cm4gMDsKfQ==