Какое регулярное выражение соответствует такому набору [1] [2] [3] [4] [23] - где числа заключены в скобки. (Мне нужно получить скобки, хотя)
[1] [2] [3] [4] [23]
Регулярное выражение \ [[0-9] + \] будет соответствовать чему-либо вроде '[1]', '[2]', '[678]'. Более точное регулярное выражение, которое последовательно улавливает один или несколько из этих шаблонов:
((\ [[0-9] + \]) (| $)) +
Я не знаком с Java regex, но если это PCRE, я думаю, что это должно быть:
/(\[\d+\])/
Я не был точно уверен, нужны ли вам скобки в матче, но если нет, думаю, вы могли бы использовать
/\[(\d+)\]/
Кажется, работает следующее:
Pattern pattern = Pattern.compile("(\\[\\d+\\])\\s*"); Matcher matcher = pattern.matcher("[1] [2] [3] [4] [23]"); while (matcher.find()) { System.out.println("match = " + matcher.group(1)); }
Если вам не нужно захватывать какие-либо числа, следующее выражение будет соответствовать строке с этим шаблоном:
(?:\[\d+\]\s?)+