我有以下文字:
2017-08-28 08:44:12,2017-08-28 08:45:57,105.524,any,80,6415,13.2,458434,20.1,439004310,30.3,4344,33281855,957
以及后续正则表达式:
^(?:[^\,]*\,){4}([^,]*)(80){1,5}([^\,]*\,){9}.*
我正在捕捉单词33281855,
作为第3组匹配。但我需要这个单词而不用逗号,就像33281855
一样
如何删除逗号?
答案 0 :(得分:0)
解决此问题的最简单方法是将(a,){9}
展开到a(?:,(a)){8}
:
^(?:[^,]*,){4}([^,]*)(80){1,5}[^,]*(?:,([^,]*)){8}.*
^^^^^^^^^^^^^^^^^^^^
请参阅regex demo
现在,[^,]*(?:,([^,]*)){8}
将匹配除,
以外的0 +字符(带有[^,]*
),然后恰好8次出现,
,然后出现除{{{0}以外的0 +字符在将非,
块捕获到第2组时将匹配1}}(最后一个将与匹配一起返回)。
请注意,逗号不是特殊的正则表达式字符,并且不需要转义它。