在正则表达式替换中重复组

时间:2016-01-20 16:36:35

标签: regex

我在每行中都有n个数字/单词的列表,例如:

12
20
24
25
26
30
31
32
39
98
103
105
106
108
116
117
122
132
138
140
etc...

我希望使用单个正则表达式将它们放在每行的n个组中,ex(n = 10):

12, 20, 24, 25, 26, 30, 31, 32, 39, 98, 
103, 105, 106, 108, 116, 117, 122, 132, 138, 140, 
etc...

我目前可以在两次替换中完成:

Match: /(\w+)\n/  ->  Replace with: "$1, "
Match: /((\w+, ){10})/  ->  Replace with: "$1\n"

但是怎么做呢?

编辑:没有代码允许bois,只有正则表达式(匹配正则表达式和替换正则表达式)。如果重要的话,我将在崇高的文本3上运行它。

1 个答案:

答案 0 :(得分:2)

我不是说很漂亮......

match: (\w+)\n(?:(\w+)\n)?(?:(\w+)\n)?(?:(\w+)\n)?(?:(\w+)\n)?(?:(\w+)\n)?(?:(\w+)\n)?(?:(\w+)\n)?(?:(\w+)\n)?(\w+)?
replace with: $1,$2,$3,$4,$5,$6,$7,$8,$9,$10 

我不知道如何捕获(\ w +){10}

中的10个组