Использование работ вида вперед и назад: String regex = "(?<=.)(?=\\w#?)";
Например,
import java.util.Arrays;
public class Foo {
public static void main(String[] args) {
String[] tests = {"EADGBE", "DADF#AD"};
String regex = "(?<=.)(?=\\w#?)";
for (String test : tests) {
System.out.println(Arrays.toString(test.split(regex)));
}
}
}
возвращает:
[E, A, D, G, B, E]
[D, A, D, F #, A, D]