Мне интересно найти 7 слов в строке.
Они должны появиться в порядке через пробел.
Предполагая, что в String regex
есть строка с 7 словами, мне было интересно, если совпадение не произошло, чтобы сократить до 6,5,4 и т. Д. Слов.
Первое регулярное выражение, которое я подумал, было:
\\b(?:word1(\\s+)word2(\\s+)word3(\\s+)word4(\\s+)word5(\\s+)word6(\\s+)word7)\\b
- Выше будет происходить с использованием
StringBuffer
и после splitting
переменной regex
через пробел, Я бы построил регулярное выражение как append
. - Если бы я получил нет соответствия, я бы снова зациклился, сжимая выражение до
word6
и т. Д. И далее уменьшая до word5
и т. Д.пока я не попал в матч.
Я не уверен, что мне действительно нравится этот подход. Могу ли я улучшить его или сделать его более эффективным способом?