我有一个 CSV 文件,其中包含从我的网络应用程序下载的内容:
Date,Name
2013-10-09T12:11:00+01:00,SomeName
2013-10-09T12:15:00+01:00,OtherName
现在我正在编写一个 Behat 场景来检查下载文件的内容是否正确,因此在我的步骤定义中,我有这个 HEREDOC 字符串表示应下载的 CSV 文件:
$expectedData = <<<CSV
Date,Name
2013-10-09T12:11:00+01:00,SomeName
2013-10-09T12:15:00+01:00,OtherName
CSV;
我想要做的是用正则表达式替换您在 $expectedData
字符串中看到的日期,因为在我的 Behat 场景中我不知道下载的文件中将出现哪些日期...可能吗?
P.S.很抱歉这个问题的质量,但我对所有这些语言/工具/框架都很陌生......
最佳答案
是的,当然可以使用/m
(多行)开关来完成。试试这个代码:
$expectedData = <<<CSV
Date,Name
2013-10-09T12:11:00+01:00,SomeName
2013-10-09T12:15:00+01:00,OtherName
CSV;
$re = '/^.+$/'; // some regex here to be placed in 1st column
echo preg_replace('/^(=\d{4}-\d{2}-\d{2})[^,]+/m', $re, $expectedData);
输出:
Date,Name
/^.+$/,SomeName
/^.+$/,OtherName
关于php - PHP 中 HEREDOC 字符串内的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19295569/