在Java正则表达式中提取第n个匹配项

时间:2013-03-30 20:03:07

标签: regex

是否可以仅使用正则表达式(无附加代码!)来匹配第n个匹配?例如,我想匹配\ 002的第二,第四,第六,第八,第十,第十二等出现但是跳过以下字符串中的第一,第三,第五,第七等:

“CAR”\ 002“TRAIN”\ 002“BOAT”\ 002“BICYCLE”\ 002“HOUSE”\ 002“TENNIS”\ 002“BED”\ 002“KITCHEN”\ 002“LOVE”\ 002“HAPPENIES “

有没有人为此提供纯正的正则表达式解决方案?我需要这个,因为我无法更改使用正则表达式的代码,但我可以提供正则表达式。

提前致谢

1 个答案:

答案 0 :(得分:0)

嗯,是的,你只是加倍了正则表达式:

\002[^\002]*(\002)

要一般匹配特定字符串的每第n次出现,您可以使用{}

(?:\002[^\002]*){n-1}(\002)