我试图在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 ]+\|)+(,|\|)\|