1

在文件中显示数据 ---

Kortrijk]]||75,592||74,790||73,777VWVVLG
Hasselt]]||65,503||68,085||70,584VLIVLG
Sint-Niklaas]]||68,277||68,290||70,016VOVVLG
Ostend]]||69,039||67,279||69,115VWVVLG
|22Tournai]]||67,291||67,379||67,844WHTWAL
|23Genk]]||61,532||62,842||64,095VLIVLG
|24Seraing]]||62,832||60,557||61,237WLGWAL

这是我wiki.txt文件中的数据集,我需要删除“]]||”之后的所有内容 从所有行。

//代码实现后需要数据

Kortrijk
Hasselt
Sint-Niklaas
Ostend
|22Tournai
|23Genk
|24Seraing

这是我遇到的代码,但不知道如何在我的代码中使用它,我关注了preg_replace正则表达式等,但一切都超出了我的想象。请帮助我,请让我知道我可以关注的任何教程链接对于这些工作(specially regular expression for a novice)。

$file="wiki.txt";
file_put_contents($file,str_replace('find','replace',file_get_contents($file)));
4

3 回答 3

1
preg_replace('/]]\|\|.*$/m', '', $fnames);

匹配 ']]||' 从字面上看,然后是所有字符 (.*),直到行 '$' 的结尾,并将它们替换为 ''。

另外:查看有关 RegExp 的本教程

于 2012-09-14T04:15:01.390 回答
1

尝试:

$arr = file("wiki.txt"); //will give you contents as array
$newContent = "";
foreach($arr as $key => $val) {
    $newContent .=substr_replace($val, '', strpos($val, ']'))."\n";
}
//add changed content back to file
file_put_contents("wiki.txt", $newContent);

//result is:
Kortrijk
Hasselt
Sint-Niklaas
Ostend
|22Tournai
|23Genk
|24Seraing
于 2012-09-14T04:16:51.717 回答
1

而不是“更改”文件,您可能想要打开文件,读取内容,然后将您想要的部分写入新文件。如果一切按计划进行,请将旧文件替换为新文件。这样就安全多了。

<?php

$lines = file("input.txt");

$output = "";

foreach ($lines as $line) {
  $output .= substr($line, 0, strpos($line, "]")) . "\n";
}

file_put_contents("output.txt", $output);

解决这个问题的方法很多。

于 2012-09-14T05:17:26.637 回答