You need to adjust your delimits pattern to exclude the space (since you do not want to keep space delimiters in the result) and put the - at the end of the character class as in your expression it forms a range between + and =. Then, just add an | + alternative to the main regex:
String delimits="[{;}(),#<>*+=/-]+";
String o = "asda45a or-ro asd6ad";
String[] lst = o.split("(?<="+delimits+")|(?="+delimits+")| +");
System.out.println(Arrays.toString(lst));
// => [asda45a, or, -, ro, asd6ad]
See the online Java demo
If you want to split with any whitespace, replace | + with |\\s+.
words like asda45a or asd6ad?