我正在尝试使用sed清理url行,以便仅提取域。。
所以从:
http://www.suepearson.co.uk/product/174/71/3816/
我想要:
http://www.suepearson.co.uk/
(不管有没有火车斜线,都没关系)
我试过:
sed 's|\(http:\/\/.*?\/\).*|\1|'
and(转义非贪婪量词)
sed 's|\(http:\/\/.*\?\/\).*|\1|'
但我似乎无法让非贪婪量词(
?
)起作用,因此它总是匹配整个字符串。
最佳答案
basic和扩展的Posix/GNU regex都不能识别非贪婪量词;您需要一个稍后的regex。幸运的是,这个上下文的Perl regex非常容易获得:
perl -pe 's|(http://.*?/).*|\1|'
关于regex - sed中的非贪婪(勉强)正则表达式匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51905073/