2011-10-28 5 views
0

正規表現を使用して有効なIPアドレスを照合しようとしています。私は表現を持っている問題は私がgrepの動作を理解することはできませんです。grepの正規表現

0〜255の数値と一致するようにしました: echo 15 | grep -E "[01]?[0-9] [0-9]?| 25 [0-5] | 2 [0-4] [0-9]"

しかし、すべての数字に一致します!

たとえば3000も一致しています - それは文字列全体3000の一部である "30"と一致していると思います...その後試しました grep -E "([01]?[0-9] [0 (0-255と一致するようにしようとしています) しかし、働いているようだ。助言がありますか??

括弧を正規表現の別々の部分に入れることは有効ですか?このようなもの - >((a | b)c)(l | m)

答えて

1
echo 15 | grep -E "^([01]?[0-9][0-9]?|25[0-5]|2[0-4][0-9])$"