【发布时间】:2015-04-23 13:15:44
【问题描述】:
我正在尝试在 Java 中编写代码,其功能类似于 Java 中的“split()”命令,但不会删除与正则表达式匹配的部分。例如:
String str = "ABC---DEF***GHI///JKL#@!";
然后
`str.split("[A-Za-z0-9]+")` returns `{"---", "***", "///", "#@!"}`.
但是,我想编写一个类似于split() 的方法,它拆分字符串 AT 匹配的正则表达式,而不是 AROUND 它。
`An example of an implementaion would be:
public static String[] splitString(String input, String regex)`
因此:
`splitString("ABC---123DEF***456GHI///JKL9#@6!", "[A-Za-z0-9]+")`
会给出:
`{"ABC", "---", "123DEF", "***", "456GHI", "///", "JKL9", "#@", "6", "!"}`
【问题讨论】:
-
到目前为止你写了什么?
-
所以你想同时拥有一个结果,即拆分结果+匹配模式?
-
请努力而不是要求 SO 为您编写代码。
-
请告诉我们预期的输出?
-
值得一提的是,在其他语言中,您可以简单地使用
.split("([A-Za-z0-9]+)")(带有捕获组),但 Java 缺少此功能。