RegEx аромат: wxRegEx.Сгруппированное регулярное выражение соответствует строке, которая * иногда * начинается с пробелов?
Я пытаюсь создать «сгруппированное» регулярное выражение, которое соответствует строке, которая иногда начинается с пробела. Когда это не начинается с пробела, оно начинается с целевой группы (второе выражение в скобках в следующем примере). Это относительно простая строка, состоящая из нескольких предсказуемых токенов и одной части произвольного текста, например.
"good: Sed ut perspiciatis unde omnis iste natus error "
"better: Sit voluptatem accusantium doloremque laudantium "
"best: Nemo enim ipsam voluptatem quia voluptas "
" ok: Sit voluptatem accusantium doloremque laudantium "
Примечание: Приведенные символы не часть моего входа. Представляя кавычки в моем сообщении, я пытаюсь сделать границы каждой строки/строки более четкими.
Регулярное выражение, что я придумал, чтобы соответствовать выше в «сгруппированных» способом (то есть, что я могу рассмотреть каждую группу отдельно для дальнейшей обработки) является:
(^\s*)(good|better|best|ok)(:)(.*)($)
Примечание: \ S является Вызов класса-сокращения wxRegEx для [[: space:]].
Проблема в том, что это регулярное выражение работает только тогда, когда линия фактически начинается с пробела. Зачем? не означает «*» сразу после «\ s» означает «0 или более вхождений в \ s»?
Я знаю, что мне не хватает чего-то фундаментального здесь, но что это?
Являются ли кавычки частью вашего ввода? – slartidan
Просто мысль: как насчет перемещения символа начала строки из группы и использования вопросительного знака, чтобы сделать группу необязательной? '^ (\ s *)? (good | better | be ...' – Bazzz
@Bazzz Я просто попробовал ваше предложение. То же (неправильное) поведение. –