我试图在Bananas|,|Bananas|||Bananas|Oranges|,|Bananas|||Bananas|Oranges|||Bananas|Oranges|Green Apples|,|Bananas|||Bananas|Oranges|||Bananas|Oranges|Red Apples|,|Bananas|||Bananas|Oranges|||Bananas|Oranges|Pears|||分隔符上用正则表达式拆分格式为|,|的字符串。我正在使用[a-zA-Z |]+\|[,|\0]\|,但是我有一个小问题:[a-zA-Z |]字符类捕获了三重分隔符。

有没有一种方法可以更改[a-zA-Z |]字符类,使其仅连续接受一个管道字符,同时允许任意数量的其他管道字符? (即,它应接受accessories|batteries,但不能接受accessories||batteries。)

更多示例:在原始字符串中,正则表达式应接受Bananas|Oranges|,|Bananas|||而不是Bananas|||Bananas|Oranges|,|,并在|[,|]|之前使用任意数量的单管道分隔名称。

最佳答案

我认为您想要一个包含一堆这些[a-zA-Z ]+的组,并始终跟一个\|。该组可以重复多次,并且总是被,|||终止(在跟踪|之后),因此(,|\|)\|

总计:([a-zA-Z ]+\|)+(,|\|)\|

07-24 22:26