我試圖從文本中提取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