0

您好,我需要相反的正则表达式才能使用记事本+++

\d{2}-\d{2}|\d{2,4}[+-]

现在它取代了几年

ML 12+ (W166) = ML (W166)
FREELANDER II 07+ = FREELANDER II
Kuga 08-12 = Kuga
CRV 2012+ = CRV
RX270/350 10+ = RX270/350
QASHQAI 2+ = QASHQAI 2+
TRIBECA 05 = TRIBECA 
XC60 = XC60

在右侧(在'='之后)我展示了它是如何工作的。我需要这样的相反效果

ML 12+ (W166) = 12
FREELANDER II 07+ = 07
Kuga 08-12 = 08-12
CRV 2012+ = 2012
RX270/350 10+ = 10
QASHQAI 2+ = 
TRIBECA 05 = 05 
XC60 =
4

3 回答 3

0

使用

\s(\d+[\-]?)[^+](\d+)?

你可以提取 1 美元和 2 美元来得到你的答案。

如果我错了,请纠正我。

于 2013-09-03T10:51:53.637 回答
0

这是我能想到的最好的:

寻找:

^.*?(?<digits>\d{2}-\d{2}|\d{2,4}).*?$

用。。。来代替:

\1

这是一个在线测试:http ://regex101.com/r/nY6uE5

它可以替换所有行,但不匹配的行除外 ( QASHQAI 2+)

应用此替换后,您可以通过替换^.*[^\d-].*$为空字符串来消除不匹配的行。


更新:好的,现在我明白了数字模式必须以空格开头的要求。正则表达式应该是:

^.*?\s(?<digits>(\d{2}-\d{2})|(\d{2,4})).*?$

( http://regex101.com/r/dN2sH9 )

于 2013-09-02T21:16:32.330 回答
0

我的解决方案,但仍需要修复。
查找内容:(.+)(\s\d+)(.+=).+
替换为:$1$2$3 $2

结果几乎完成,但需要修复。

ML 12+ (W166) = 12
FREELANDER II 07+ = 07
Kuga 08-12 = 08
CRV 2012+ = 2012
RX270/350 10+ = 10
QASHQAI 2+ = 2
TRIBECA 05 = 05
XC60 = XC60
于 2021-03-02T12:29:34.437 回答