0
這麼簡單的問題讓我難堪。這裏的人很有幫助。
我想匹配一個包含一些固定文本和隨機數字的字符串。
echo blah blah abc123 | grep -o abc
abc
echo blah blah abc123 | grep -o abc[0-9]
abc1
echo blah blah abc123 | grep -o abc[0-9]+
echo blah blah abc123 | grep -o "abc[0-9]+"
echo blah blah abc123 | grep -o "abc[0-9]*"
abc123
echo blah blah abc123 | grep -o abc[0-9]{3}
echo blah blah abc123 | grep -o "abc[0-9]{3}"
*運算符(匹配零次或多次)是唯一符合我預期的工作。
爲什麼+運算符(匹配1次或多次)不匹配?
爲什麼特定的重複計數算子{3}不匹配?
我的Ubuntu 10.10,如果它的確與衆不同運行在bash shell這些例子。
非常感謝。
現在我明白grep的手冊頁」的含義......在基本的正則表達式的元字符,+,{,|,(和)失去了它們的特殊含義;改用反斜槓的版本\? \ +,\ {,\ |,\\(和\\)「 – OddZon 2010-12-18 03:22:49
順便說一句,我真的很喜歡stackoverflow。 – OddZon 2010-12-18 03:26:20
問題是,默認情況下,'grep'使用這個(有限)版本的regexen。使用'egrep'或'grep -E'來獲得你想要的正則表達式語法。 – 2010-12-18 04:24:34