在文本文件中搜索以特定单词开头并以另一个特定单词结尾的字符串

时间:2014-12-06 18:20:27

标签: php

我有一个文本文件,其中包含各种文件绝对路径以及其他数据。现在我需要编写一个php脚本来仅提取排除所有其他文本的绝对文件路径。

我的文件看起来像

文件:

E:\htdocs\DataSet\f1.php

Some text

    some more text

  * even more text
*

  * text again

      o E:\xampp\htdocs\DataSet\f2.php

      o E:\xampp\htdocs\DataSet\f3.php

I want to extract
E:\htdocs\DataSet\f1.php
E:\xampp\htdocs\DataSet\f2.php
E:\xampp\htdocs\DataSet\f3.php

基本上开始获胜的字符串/句子" E:"并以" .php"

结束

虽然问题很简单,但经过搜索和尝试后我现在无法找到解决方案......请帮忙!

3 个答案:

答案 0 :(得分:1)

你需要前瞻性的正则表达式,这似乎有效:

<?php
$s = file_get_contents('input.txt');
if (preg_match_all('/E\:.*(?!\.php)/', $s, $matches)) {
    $paths = current($matches);
}
var_dump($paths);

答案 1 :(得分:1)

您可以使用正则表达式:

$data = file_get_contents("path_to_your_data");
$pattern = '/E:.+\.php/';
preg_match_all($pattern, $data, $matches);

print_r($matches);

答案 2 :(得分:1)

这可能有用。

$filename = "Your file name";
$string = file_get_contents($filename);
preg_match_all("/E\:.*(?\.php)/", $string, $data);