【发布时间】:2011-01-27 02:01:04
【问题描述】:
我正在探索正则表达式的力量,所以我只是想知道这样的事情是否可行:
public class StringSplit {
public static void main(String args[]) {
System.out.println(
java.util.Arrays.deepToString(
"12345".split(INSERT_REGEX_HERE)
)
); // prints "[12, 23, 34, 45]"
}
}
如果可能,那么只需提供正则表达式(并预先说明它的工作原理)。
如果它仅适用于 Java 以外的某些正则表达式风格,那么也可以随意提供。
如果不可能,请解释原因。
奖励问题
同样的问题,但使用find() 循环而不是split:
Matcher m = Pattern.compile(BONUS_REGEX).matcher("12345");
while (m.find()) {
System.out.println(m.group());
} // prints "12", "23", "34", "45"
请注意,与其说我有具体的任务来完成某种方式,不如说我想了解正则表达式。我不需要做我想做的代码;我想要正则表达式,如果它们存在,我可以在上面的代码中使用它来完成任务(或者其他风格的正则表达式,可以将代码“直接翻译”成另一种语言)。
如果它们不存在,我想要一个很好的可靠解释原因。
【问题讨论】:
标签: java regex split overlapping-matches