我的目标是在" yy"的所有情况下拆分字符串(使用Java或Scala)。那些既没有被跟随也没有另一个字母" y"。 例子:
"aa-yy-bb" -> ["aa-", "-bb"]
"aa-yyyy-bb" -> ["aa-yyyy-bb"]
"yyy-bb" -> ["yyy-bb"]
"yy-bb" -> ["","-bb"]
"aa-yy-bb-yy" -> ["aa-","-bb-",""]
我最终在mystring.split("(^|[^y])yy([^y]|$)", -1)
,但此解决方案无效,因为它会丢弃任何相邻的字符,例如,它会输出"aa-yy-bb" -> ["aa", "bb"]
。
当然这种拆分可以通过手动解析来解决,但我想知道是否存在(优雅的)模式匹配解决方案。你能找到一些吗?