我正在尝试使用正则表达式匹配有效的IP地址。我有一个表达问题是我无法理解grep行为。
匹配0-255范围内的数字我做了: 回声15 | grep -E“[01]?[0-9] [0-9]?| 25 [0-5] | 2 [0-4] [0-9]”
但它匹配所有数字!
例如3000也匹配 - 我认为它因为它匹配“30”这是整个字符串3000的一部分...然后我试过 grep -E“([01]?[0-9] [0-9]?| 25 [0-5] | 2 [0-4] [0-9])$”
(尝试匹配0-255,然后是行尾) 但这似乎并没有奏效。任何建议??
将括号括在正则表达式的不同部分是否有效?像这样的事情 - > ((a | b)c)(l | m)
答案 0 :(得分:1)
echo 15 | grep -E "^([01]?[0-9][0-9]?|25[0-5]|2[0-4][0-9])$"