Я пытался написать своего рода сюрреалистическую приключенческую игру для моей дочери, все прошло хорошо, но я застрял в попытке обработать конкретный ввод с помощью RegEx.RegEx - Split string by word
Входная строка должна начинаться с цифры (необязательно десятичное), а затем либо последовательность символов (мин 1, макс п) сразу же после них пробелом, а затем и, или с последующим вместо по белому пространству, а затем n количество слов (без цифр) до раздвоенного слова (и). Любые слова после «и» должны быть захвачены также в другой группе.
Так пример действителен вход может быть:
5 blue cows and a bucket of milk
или
2.5mph and a really slow car
и разделить на три группы, как так:
[5] [blue cows] [a bucket of milk] or [2.5] [mph] [a really slow car]
Будучи новым для регулярных выражений, которые я собираюсь заранее извиниться за мои ужасные попытки, но я считаю, что мне нужно использовать lookahead?
Мои попытки до сих пор выглядят как это:
работает нормально, но захватывает только одно слово с каждой стороны, например: [5][синий][а]
^(\d*\.?\d*)\s*([a-z]*)\s*\band\b\s([a-z]+)
И этот с использованием lookahead захватывает несколько слов, как ожидалось, но каждый отдельный символ фиксируется отдельно:
^(\d*\.?\d*)\s*(.?)+(?=and)\s*\band\b\s((.?)+)
Любая помощь была бы оценена по достоинству, тем более, что ответ моей дочери на проблему был чем-то вроде строк «Папочка, вы должны сбрить усы, тогда это сработает?»
Приветствия ребята :)
Стив
Все, спасибо, Szymon, отлично работает! –