java - 正则表达式中仅接受一行中的单个字符

标签 java regex

我正在尝试拆分格式类似于 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 ]+\|)+(,|\|)\|

关于java - 正则表达式中仅接受一行中的单个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5545073/

相关文章:

java - 我应该序列化 keyPressed 吗?

java - 遍历要执行的命令列表——哪种模式?

java - 如何将数组放入 Hashmap 中以编码 JSON 对象

regex - 在 Swift 3 中用捕获组替换字符串

php - 使用正则表达式的 xpath 查询

JavaFX 11 : IllegalAccessError when creating Label

java - NoSuchElementException 二维数组

regex - 用于从文本文件中过滤罗马数字的单一正则表达式

jQuery 验证电子邮件验证问题

java - 正则表达式 - 使用replaceAll()替换单词但保持大小写