Неожиданное многострочное поведение 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