我有一個文本字串,其中包含一個帶有連字符和單詞的 IP 地址。我想使用正則運算式從中提取 IP 地址,該正則運算式還將連字符轉換為句點。
因此,為了澄清,是否可以提取 IP 地址并將連字符替換為純正則運算式的句點,而不在某些代碼(如 Java 或 Python)中使用正則運算式:
我擁有的
ip-10-179-50-22.corp.dept.org.uk
我想要的是
10.179.50.22
我在想我需要根據數字提取 4 個組并將它們與句點連接起來,但我不知道如何做到這一點,或者僅使用 regex 是否可以做到這一點?
我試過的
(\d{2,3}-\d{2,3}-\d{2,3}-\d{2,3})
這讓我回來了10-179-50-22,但我不知道如何在匹配組上替換。
編輯
我編輯了這個問題,以澄清我試圖找到一個解決方案來僅用正則運算式查找和替換。
總之,看起來你不能只使用正則運算式,但正則運算式需要與一些代碼一起使用才能實作這一點
uj5u.com熱心網友回復:
我們不知道您使用哪種語言,但其中很多都有一個 .replace() 可以更改 - for 。或帶有一些調整的事件子字串應該可以解決您的問題。
uj5u.com熱心網友回復:
請參閱regex101 示例。
正則運算式:
.*\b(\d{2,3})-(\d{2,3})-(\d{2,3})-(\d{2,3})\b.*
替代:
\1.\2.\3.\4
結果:
10.179.50.22
請注意,我只是使用您提供的正則運算式來匹配 IP 地址部分,而不是匹配任何有效 IP 地址的更準確的正則運算式。
uj5u.com熱心網友回復:
如果您能夠使用 sed 命令,這個正則運算式就可以完成這項作業。它使用您建議的 4 個組。
sed -i 's/^ip-\([0-9]*\)-\([0-9]*\)-\([0-9]*\)-\([0-9]*\).*/\1.\2.\3.\4/g'
它替換ip-10-179-50-22.corp.dept.org.uk為10.179.50.22. 您可以在https://sed.js.org上對其進行測驗。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/457125.html
標籤:正则表达式
