Мне нужно определить местоположения начала и конца в нескольких строках псевдокода.
В принципе, если слово «начало» или слово «конец» имеют пробел или перевод строки до и после, мне нужно записать совпадение.
Распознавание пробела / новой строки важно, так как начало или конец могут быть частью содержимого, которое появляется между началом и концом, т.е.
Начните start_time = 2 end_time = 5 конец
Пока пробовал
preg_match('/((\s)|( *)(start)(\s)|( *))|((\s)|( *)(end)(\s)|( *))/i',
$line, $matches, PREG_OFFSET_CAPTURE);
…и вариации.
Вы можете использовать это регулярное выражение для захвата этого блока:
(?<= |\A)start(?=\s)[\s\S]*(?<=\s)end(?=\s|\z)
Других решений пока нет …