我一直在尝试理解正则表达式,所以我可以找到,
(逗号空格)的每个第n次出现,\r\n
(逗号回车)来澄清:我想要替换n + 1出现字符串并将其替换为,\r\n
(逗号回车)。在行尾必须有一个逗号。
原始数据看起来像
"aa", "aah", "aal", "aalii", "aardvark", "aardvarks", "aardwolf", "aardwolves", "aargh", "aarrghh", "aasvogel", "aasvogels", "ab", "aba", "abaca", "abacas"
进程/字符标记正则表达式的开头和结尾
表达式(,)正确匹配。香港专业教育学院试过/(,)。{n} /和/(,){n} /并没有运气。 我想要的输出是这样的
"aa", "aah", "aal", "aalii",
"aardvark", "aardvarks", "aardwolf", "aardwolves",
"aarrghh", "aasvogel", "aasvogels", "ab",
"aba", "abaca", "abacas", "abaci",
在这种情况下,我用换行符取代了(,)的每第5次出现。如果可以很容易地修改正则表达式以接受第n次出现,那将是很好的。我的总数据集在49,000字的范围内
答案 0 :(得分:1)
(...){n}
不起作用。如果你将defabcdefdefghidef
与{def){2}
匹配,那么它将匹配中间的defdef,但捕获组是该匹配中def的第二个实例 - 匹配中的第一个def丢失并且不捕获一点都不所以说(, ){3}
将匹配, , ,
,而您的数据中不存在("[^"]+", ){3}
。您可以执行"abc", "def", "ghi",
并且匹配\1\r\n
,但您无法将其替换为"ghi",
,因为捕获组仅为"abc", "def",
,因此结果将是{{1}被删除。
您根本不需要使用{n}
。而不是("[^"]+", ){3}
使用("[^"]+", "[^"]+", "[^"]+", )
并将其替换为\1\r\n
答案 1 :(得分:0)