Неожиданное многострочное поведение pcregrep для шаблонов, содержащих канал

Я заметил очень странное поведение с многострочным соответствием с pcregrep когда шаблон содержит трубу | оператор. Вот пример тривиального примера неожиданного поведения. Первая команда возвращает ожидаемое поведение, а вторая должна возвращать тот же результат, но не возвращает (выполняется в bash):

$ pcregrep -M -e '(foo\(\) {\n +return|zzzz)' ~/sandbox/test.txt
function foo() {
    return blah();
$ pcregrep -M -e '(foo\(\) {\n +return|zzz)' ~/sandbox/test.txt
$

test.js (ASCII с окончанием строки Unix):

function foo() {
    return blah();
}

const bar = () => {
    return bleh();
}

Это похоже на ошибку в pcregrep, возможно, мне не хватает какой-то очевидной проблемы синтаксиса PCRE.

pcregrep version 8.39 2016-06-14

0 ответов

Другие вопросы по тегам