Я пытаюсь извлечь IP-адрес из текста и не понимаю результат в соответствии с регулярным выражением, которое я пишу. Apparantly это:Sed выражение для IP-адреса, получение неожиданного результата для соответствующей группы
echo '"IPAddress": "173.14.0.3",' | sed -n -r -e 's/"IPAddress": "(.*)"/\1/p'
возвращает
173.14.0.3,
Почему я получаю ,
в конце? Не "(.*)"
инструктировать регулярное выражение для создания соответствующей группы из всех двух последних "
?
Первоначально я начал с
echo '"IPAddress": "173.14.0.3",' | sed -n -r -e 's/"IPAddress": "([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3})"/\1/p'
, но получил тот же результат. Я использовал regex101, и там я получаю другой ответ. Зачем?
regex101 не поддерживает регулярные выражения sed. Вы не можете использовать его для sed. – hek2mgl
Является ли вход json-документом? – hek2mgl
@ hek2mgl Да, но меня больше интересует, как работает sed. Я знаю, что есть лучшие способы разбора json. – erihanse