2017-02-27 23 views
1

我嘗試在我的腳本中使用正則表達式,但我無法做到我想要的。我認爲我做錯了!在Debian上使用REGEX與grep

我有這個字符串: mywebsite.fr/details.php?id=123456

我想演這個角色? details.php ID = 123456

我使用的是:

echo "http://mywebsite.fr/details.php?id=123456" | grep "/details(.*)/" 

該命令不返回任何結果.. 我有什麼誤解在我的正則表達式?

預先感謝您爲您的回答
昆汀

回答

1

正如@eThang回答,您不應該使用/; grep不使用/作爲正則表達式分隔符。

如果你想獲得唯一匹配的部分,使用-o選項:

$ echo "http://mywebsite.fr/details.php?id=123456" | grep -o "details.*"  
details.php?id=123456 
-o, --only-matching 
      Print only the matched (non-empty) parts of a matching line, with each such part on 
      a separate output line. 

GNU的grep牛瘟(1)

+0

它的工作原理! 我還不夠正則表達式,謝謝 我不得不做太複雜! – mangasource

+0

如果我需要的字符串出現多次,我該如何選擇停下來呢?我不知道你是否理解^^' – mangasource

+0

@mangasource,你能舉個例子嗎? – falsetru

0

嘗試刪除斜槓。他們不需要grep。

echo "http://mywebsite.fr/details.php?id=123456" | grep "details(.*)"