2015-07-09 131 views
-2

事件1和事件2具有相同的字段类型;事件3在前面添加了一个附加列。我想忽略事件3中的第一列,并使用正则表达式捕获其他3个字段。正则表达式忽略字符串

事件之一:

"gvonsoT6dvnogn" "gn12sdgnwgn" "gnsod5-gnsopdgn" 

事件二:

- "voksjnd3aY_vgoksn" - 

事件三:

"abcnoandvondvoavnoavnaovd8745n" "aondvoanvo" - - 

这里是我的正则表达式whicih不安静的工作:

^(?![abc]*[\"\s])(?<x1>[^ ]+)\s(?<x2>[^ ]+)\s(?<x3>[^ ]+) 
\______________/ 
+0

你使用什么工具/语言?以及忽略列的标准是什么?它以'abc'开始还是有三列以上的事实? –

+0

phython和忽略标准是以abc开头 –

+0

是非空列总是在引号之间? –

回答

0

我改变你稍微模式:

^(?:"?abc\S*\s+)?(?P<x1>\S+)\s+(?P<x2>\S+)\s+(?P<x3>\S+) 

Demo

,第一组将匹配不需要的价值,但它不是一个捕获组。

我还用\S\s\s+替换了[^ ],以使regex101满意您提供的示例。

+0

仍然不能正常工作,“被删除,但其余的acb *仍然存在 –

+0

@t_k看起来像它在regex101中为你提供的示例工作(看看颜色)。你能提供一个失败的例子吗?也许我误解了一些东西 –

+0

regex101你使用的是全球\ g \ m,我不能使用这些;但是,我们越来越接近了,这是肯定的, –

相关问题