:%s/\(https\?:\/\/.*?\/\).*//gc
,甚至试图逃脱.*?
量词?非贪婪量词如何在vim中转义?#1 楼
Vim的regex对非贪婪版本的运算符具有特殊的语法(这很烦人,但您只需要记住它们):http://vimregex.com/#Non-Greedy*
的贪婪版本是\{-}
。因此,只需将.*
替换为.\{-}
::%s/\(https\?:\/\/.\{-}\/\).*//gc
#2 楼
我更喜欢将问题分为两个步骤:/\v(https?):\/\/(.{-})\/.* <-- Search
:%s,,Protocol: - Domain:,g <-- Substitution
使用非常神奇的“ \ v”来避免许多反斜线,并引用最后一个搜索
来代替和更改替换定界符。所有这些更改使代码更具可读性。
#3 楼
您也可以使用[^\]+/.
防止贪婪。 [^/]
的意思是“匹配任何期望的/
,并且+
重复一次或多次。。这样我就不必逃避/
了。示例
假设您具有以下网址:
:%s!\v^(https?)\://([^/]+)/.*$!Protocol: \t Domain:!g
应用替换,您将得到以下信息:
http://academy.mises.org/courses/econgd/
http://academy.mises.org/moodle/course/view.php?id=172
http://acmsel.safaribooksonline.com/book/-/9781449358204?bookview=overview
http://acmsel.safaribooksonline.com/home
http://acordes.lacuerda.net/bebo__cigala/lagrimas_negras-2.shtml
http://acordes.lacuerda.net/jose_antonio_labordeta/albada.shtml
http://anarchitext.wordpress.com/category/new-middle-east/
https://courses.edx.org/courses/course-v1%3ADelftX%2BFP101x%2B3T2015/wiki/DelftX.FP101x.3T2015/resources-and-links/
https://cseweb.ucsd.edu/classes/wi11/cse230/lectures.html
https://developer.mozilla.org/en-US/docs/CSS
https://developers.google.com/edu/python
https://developers.google.com/structured-data/testing-tool/
评论
:help greedy将您带到正确的帮助主题。 :help regexp是描述Vim regex风格的帮助。相关:如何使我的比赛在vim中变得不贪心?在堆栈溢出上。