亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

非貪婪(不情愿)正則表達式匹配?

非貪婪(不情愿)正則表達式匹配?

jeck貓 2019-06-17 15:27:35
非貪婪(不情愿)正則表達式匹配?我試圖使用sed來清理URL行,只提取域。因此:http://www.suepearson.co.uk/product/174/71/3816/我要:http://www.suepearson.co.uk/(無論有沒有火車斜杠,這都不重要)我試過: sed 's|\(http:\/\/.*?\/\).*|\1|'和(逃避非貪婪量詞)sed 's|\(http:\/\/.*\?\/\).*|\1|'但我似乎不能讓非貪婪的量詞工作,所以它總是匹配整個字符串。
查看完整描述

3 回答

?
眼眸繁星

TA貢獻1873條經驗 獲得超9個贊

無論是基本的POSIX/GNU正則表達式還是擴展的POSIX/GNU正則表達式都不會識別非貪婪的量詞;您需要稍后的正則表達式。幸運的是,用于此上下文的Perl regex非常容易獲得:

perl -pe 's|(http://.*?/).*|\1|'


查看完整回答
反對 回復 2019-06-17
?
慕碼人8056858

TA貢獻1803條經驗 獲得超6個贊

在這種特殊情況下,您可以完成任務而不用使用非貪婪的正則表達式。

試試這個非貪婪的正則表達式[^/]*而不是.*?:

sed 's|\(http://[^/]*/\).*|\1|g'


查看完整回答
反對 回復 2019-06-17
  • 3 回答
  • 0 關注
  • 713 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號