preg_match_all чтение из файла возвращает пустой массив - PullRequest
0 голосов
/ 12 июня 2018

Я пытаюсь прочитать файл и отфильтровать его содержимое.Результат, который я ожидаю, таков: https://regex101.com/r/uMTrtd/3, но я не знаю, почему я его не получаю.Я попытался изменить пределы PCRE безрезультатно, и я не знаю, что еще делать.

Если я запускаю preg с реальной строкой вместо чтения файла, он работает, но var_dump($file) возвращает строку.

<?php

$file = file_get_contents('myfile.txt');
var_dump($file);
$text = preg_replace('/(cve: .+? Pág\. [0-9]{1,2} )/u','', $file);

$re = '/(La señora|El señor) (.+?):(.+?\. (?=(La señora|El señor) (.+?):|Eran las .+?\.))/u';
preg_match_all($re, $text, $matches, PREG_SET_ORDER, 0);
var_dump($matches);

?>

Вы можете проверить содержимое файла здесь https://regex101.com/r/uMTrtd/3

1 Ответ

0 голосов
/ 15 июня 2018

попробуйте это:

$text = preg_replace('/(cve: .+? Pág\. [0-9]{1,2} )/us','', $file);


$re = '/(La señora|El señor) (.+?):(.+?\. (?=(La señora|El señor) (.+?):|Eran las .+?\.))/us';

"s" делает поиск также по новым строкам

...