Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 替换在一行中只保留不匹配的字符_Regex_Vim_Sublimetext2 - Fatal编程技术网

Regex 替换在一行中只保留不匹配的字符

Regex 替换在一行中只保留不匹配的字符,regex,vim,sublimetext2,Regex,Vim,Sublimetext2,我正试图得到伦敦所有地铁站及其相应线路的准确列表。我从维基百科获取这些信息,在那里我复制了文章的源文本,并使用regex search and replace在文件的每一行留下地铁站的名称及其线路的名称 我已经设法把地铁站的名字分到了他们自己的线路上。所以现在我一直在试图找到一个正则表达式,它只匹配文件行中不属于伦敦地铁线路名称的字符,并删除这些字符。这样就更容易过滤掉 我在Vim和Sublime文本中尝试了各种方法,但我不确定什么方法有效 (?!Bakerloo|Central|Distric

我正试图得到伦敦所有地铁站及其相应线路的准确列表。我从维基百科获取这些信息,在那里我复制了文章的源文本,并使用regex search and replace在文件的每一行留下地铁站的名称及其线路的名称

我已经设法把地铁站的名字分到了他们自己的线路上。所以现在我一直在试图找到一个正则表达式,它只匹配文件行中不属于伦敦地铁线路名称的字符,并删除这些字符。这样就更容易过滤掉

我在Vim和Sublime文本中尝试了各种方法,但我不确定什么方法有效

(?!Bakerloo|Central|District|Hammersmith & City|Jubilee|Metropolitan|Northern|Piccadilly|Victoria|Waterloo & City).*
以上的搭配太过贪婪了。有什么帮助吗

编辑:我已将文件缩减为仅包含行名的行。文件的一行如下所示:

| [[File:ActonTown1.jpg|100px|alt=A brown-bricked building with a flat-slabbed roof and six columns of windows on the front face standing below a blue sky with white clouds|Acton Town]] || [[District line|District]]<br>[[Piccadilly line|Piccadilly]] || [[London Borough of Ealing|Ealing]] || {{ctr|[[Travelcard Zone 3|3]]}} || {{ctr|{{dts|format=dmy|1879|July|1}}}} || {{sort|z|}} || Mill Hill Park: 1879–1910 || {{ctr|{{nts|5.75}}}}
|[[File:ActonTown1.jpg | 100px | alt=一座棕色砖房,平铺板条屋顶,六柱窗户,正面矗立在蓝天白云下| Acton镇][District line | District]
[[Piccadilly line | Piccadilly].[London Borough of Travelealing | Ealing].[ctr | |[3]区{|{{dts | format=dmy | 1879 | July | 1}}{124;{sort | z |}| | Mill Hill Park:1879-1910{ctr{nts | 5.75}
My提供了一个
:deleteException
命令,该命令可能会帮助您(如果我正确理解您的需求):


你可以添加一个示例文本吗?好的,那么你的正则表达式与你提供的文本相匹配。有什么问题吗?很抱歉我的误解,但是你可以添加一点澄清吗?我想在每一行上只留下管道的名称,那么为什么不简单地使用:
Bakerloo | Central | District | Hammersmith&City | Jubile | Metropolitan | Northern | Piccadilly | Victoria | Waterloo&City
我最终不得不使用该正则表达式,然后反转选择
:%DeleteExcept /Bakerloo\|Central\|District\|Hammersmith & City\|Jubilee\|Metropolitan\|Northern\|Piccadilly\|Victoria\|Waterloo & City/