regex — PHP регулярное выражение или новая строка до или после

Мне нужно определить местоположения начала и конца в нескольких строках псевдокода.

В принципе, если слово «начало» или слово «конец» имеют пробел или перевод строки до и после, мне нужно записать совпадение.

Распознавание пробела / новой строки важно, так как начало или конец могут быть частью содержимого, которое появляется между началом и концом, т.е.

Начните
start_time = 2
end_time = 5
конец

Пока пробовал

preg_match('/((\s)|( *)(start)(\s)|( *))|((\s)|( *)(end)(\s)|( *))/i',
$line, $matches, PREG_OFFSET_CAPTURE);

…и вариации.

1

Решение

Вы можете использовать это регулярное выражение для захвата этого блока:

(?<= |\A)start(?=\s)[\s\S]*(?<=\s)end(?=\s|\z)

RegEx Demo

0

Другие решения

Других решений пока нет …