这是来自csv文件的示例行:
A|ZHZ020|SAP|000005325602345|05.11.2015|37,58|EUR|+|I|2,363200|17895,22|05.11.2015|08|XY
我想只搜索 last 日期(在这种情况下是 second )。我的正则表达式:
\W[0-9]{2}\.[0-9]{2}\.[0-9]{4}\W
不能按预期工作,因为它匹配两个日期。
我不知道该怎么做。是否有可能以这样的方式编写正则表达式"跳过第一场比赛"?
答案 0 :(得分:2)
使用负面展望:
\W\d\d\.\d\d\.\d{4}\W(?!.*\W\d\d\.\d\d\.\d{4}\W)
请参阅live demo。
如果在输入的某个地方某处 匹配,那么前面的负面预测会确保只会发生匹配(这在逻辑上等同于仅匹配 last 命中)。
另请注意使用较短的\d
("数字")而不是较长的[0-9]
(包含所有数字字符的字符类)。