【发布时间】:2017-03-31 15:52:26
【问题描述】:
我正在尝试使用 notepad++ 匹配并获取文件中最后一次出现的模式。
我的文字:
X12
Source =asdjkasjd
file="x/y1.dun"
"x/y2.dun"
"x/y3.dun"
asds12
X22
p/q/xy.dun
asda=23
source =asdf
X44
1000
1001
file="abc.dun"
我期望使用查找和替换是这样的:
X12 x/y3.dun
X22 p/q/xy.dun
X44 abc.dun
到目前为止我所尝试的:
(X\d{2}).*?([^"\s]+dun)((?!X\d{2}).)*
替换为:
$1\t\t$2\n
但它返回给我这个:
X12 x/y1.dun //Which is the first match
X22 p/q/xy.dun
X44 abc.dun
如何获得比赛中的最后一场比赛?我正在寻找获得最后一场比赛的通用方法。
【问题讨论】:
-
您的问题根本不清楚您要做什么。如果要替换文件中某项的最后一个实例,则可以将光标移动到文件底部,然后在查找或替换窗口中将
Direction设置为Up。 -
@GurV 看起来相当复杂。你还在努力吗?
-
我无法提供单步解决方案。您可以使用
(?s).*?\b(X\d{2})(?:(?!X\d{2}).)*["\s]([^"\s]+\.dun)+替换为$1\t\t$2\n,然后删除“尾巴”(最后一场比赛后剩下的)。 -
@WiktorStribiżew - 谢谢。这对我行得通。我可以手动删除一个尾随部分。您可以将其添加为答案,我会接受。再次感谢:)
标签: regex notepad++ match negative-lookahead