我有一個簡單的程序,它將IP地址作爲唯一參數。 IP地址可以採用兩種格式:點分十進制或十六進制。根據使用哪個,我需要執行不同的操作。檢查argv [1]是否爲十六進制字符串
因此,我需要檢查,如果該參數是
1) IP in dotted decimal format
2) IP in hex format
3) other (illegal/malformed argument)
如何將我最好的檢查? 我應該使用某種正則表達式嗎?正確形成的十六進制地址必須有8個十六進制字符,[0-9a-f]{8}
。正確的小數點IP必須包含4個數字[0-255]和3個點。
假設輸入'11.11.11.11'。它會有效嗎?它會是十六進制還是十進制? –
我認爲OP正在尋找這兩個輸入:'(\ d {1,3} \。){3} \ d {1,3}'和'[a-zA-Z0-9] {8}' –
@Mahonri Moriancumer - 一個十六進制IP地址不包含點。因此'11.11.11.11'是一個有效的點分十進制IP。 –