У меня будут такие слова
String text = [ name abc ]
String text = [ name # abcd]
String text = [ name - abcd]
String text = [ name abcde ]
Я хочу разделить эти слова, чтобы получить имена как abc, abcd, abcde
Разделителем здесь могут быть только пробелы, пробелы # пробелы,пробелы-пробелы и nospace.
У меня есть это регулярное выражение для соответствия
Pattern pat = Pattern.compile("\[\s*name\s*(-|#)\s*[a-z0-9]+\s*\]",Pattern.CASE_INSENSITIVE);
Matcher matcher = pat.matcher(text);
while (matcher.find()) {
String subseq = matcher.group();
String extractName = subseq.split("(-|#|\\s*)", 2)[1].replaceAll("]", "").trim();
}
Этот код не работает для [name mynameisDON], однако он работает для [name: abc]
Я хочу знать, какое регулярное выражение передать этой функции разбиения, чтобы я мог получить то, что хочу.