我有一个名为 mail.txt 的文件,其中包含以下内容:
From: elvis@tabloid.org (The King)
Subject: be seein' ya around
Date: Mon, 23 Oct 2006 11:04:13
From: The Prez <president@whitehouse.gov>
Date: Wed, 25 Oct 2006 8:36:24
Subject: now, about your vote
我正在使用 Sublime Text ,其中正则表达式^\w+:
正常工作。
我正在使用 file_get_contents()
来阅读 mail.txt 中的内容,然后将相同的正则表达式用于 preg_replace()
< / strong>突出显示输出。
问题是,当我使用 file_get_contents()
时,它不会考虑\n
,为此我尝试了nl2br()
,但这不起作用任
以下是Sublime和PHP中的输出:
以下是PHP代码:
<?php
$path = "./mail.txt";
if(!file_exists($path))
die("File does not exist");
else {
if(!($handle = fopen($path, "r")))
die("File could not be opened");
else {
$file_data = file_get_contents($path);
}
}
$mod_file = preg_replace("/^\w+:/", "<span class='replaced'>$0</span>", $file_data);
echo "<pre>".$mod_file."</pre>";
?>
如何解决这个问题?
答案 0 :(得分:4)
您需要使用m
或Multiline
标记。请参阅演示。
https://regex101.com/r/cT0hV4/12
$re = "/^\\w+:/m";
$str = "From: elvis@tabloid.org (The King)\nSubject: be seein' ya around\nDate: Mon, 23 Oct 2006 11:04:13\nFrom: The Prez <president@whitehouse.gov>\nDate: Wed, 25 Oct 2006 8:36:24\nSubject: now, about your vote";
preg_match_all($re, $str, $matches);