正则表达式 - 消除第n个逗号后的所有内容

时间:2016-12-06 20:01:18

标签: regex pcre

我有一个事件源,可以生成比需要更多的信息。大多数事件都是以逗号分隔的字段。某些事件包括逗号分隔字段后面的XML信息。我希望在第22个逗号到事件结束后删除所有内容,包括所有XML。尝试了许多REGEX的变化,但似乎无法做到正确。

结束于此:^(?:[^,\n]*,){22}((.*?))(?:.*$)

似乎正在做我想要的事情。

2 个答案:

答案 0 :(得分:1)

想出来...... s /((?:[^,] ,){22})。((\ s + \ S +)。*){1,} / $ 1 /克

答案 1 :(得分:0)

Based on your answer, this might do a better job:

s/^([^,]*+(?:,[^,]*+){0,21}).*?$/$1/gsm